From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 27 Feb 2019 18:13:54 -0000 Received: from p5492e5b8.dip0.t-ipconnect.de ([84.146.229.184] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gz3iL-0008M8-I7 for speck@linutronix.de; Wed, 27 Feb 2019 19:13:53 +0100 Date: Wed, 27 Feb 2019 19:13:53 +0100 (CET) From: Thomas Gleixner Subject: Re: [patch V5 00/14] MDS basics 0 In-Reply-To: Message-ID: References: <20190227150939.605235753@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit To: speck@linutronix.de List-ID: On Wed, 27 Feb 2019, speck for Thomas Gleixner wrote: > On Wed, 27 Feb 2019, speck for Linus Torvalds wrote: > > and then the lines are at least a bit shorter: > > > > VULN_WHITELIST(INTEL, 5, X86_MODEL_ANY, NO_SPECULATION), > > > > (or do we actually need the feature mask? None of the existing cases > > seem to have it?) > > No. I just had to add it to be able to use driver_data. > > > I dunno. Maybe none of this matters. > > Lemme have a try. Something like this: #define VULNWL(vendor, family, model, whitelist) \ { X86_VENDOR_##vendor, number, model, X86_FEATURE_ANY, whitelist) static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = { VULNWL(ANY, 4, X86_MODEL_ANY, NO_SPECULATION }, VULNWL(CENTAUR, 5, X86_MODEL_ANY, NO_SPECULATION }, VULNWL(INTEL, 5, X86_MODEL_ANY, NO_SPECULATION }, VULNWL(NSC, 5, X86_MODEL_ANY, NO_SPECULATION }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SALTWELL, NO_SPECULATION }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SALTWELL_TABLET, NO_SPECULATION }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SALTWELL_MID, NO_SPECULATION }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_BONELL, NO_SPECULATION }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT_, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT_MID, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_AIRMONT, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_AIRMONT_MID, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_CORE_YONAH, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_XEON_PHI_KNL, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_XEON_PHI_KNM, NO_SSB | NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_GOLDMONT, NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_GOLDMONT_X, NO_L1TF }, VULNWL(INTEL, 6, INTEL_FAM6_ATOM_GOLDMONT_PLUS, NO_L1TF }, VULNWL(AMD, 0x0f, X86_MODEL_ANY, NO_SSB }, VULNWL(AMD, 0x10, X86_MODEL_ANY, NO_SSB }, VULNWL(AMD, 0x11, X86_MODEL_ANY, NO_SSB }, VULNWL(AMD, 0x12, X86_MODEL_ANY, NO_SSB }, /* FAMILY_ANY must be last, otherwise 0x0f - 0x12 matches won't work */ VULNWL(AMD, X86_FAMILY_ANY, X86_MODEL_ANY, NO_MELTDOWN | NO_L1TF }, VULNWL(HYGON, X86_FAMILY_ANY, X86_MODEL_ANY, NO_MELTDOWN | NO_L1TF }, {} }; Thanks, tglx