From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 15 Apr 2020 17:52:04 -0000 Received: from mx2.suse.de ([195.135.220.15]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jOmCe-00085F-EV for speck@linutronix.de; Wed, 15 Apr 2020 19:52:03 +0200 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id ECB2CAFC3 for ; Wed, 15 Apr 2020 17:51:52 +0000 (UTC) Date: Wed, 15 Apr 2020 19:51:45 +0200 From: Borislav Petkov Subject: [MODERATED] Re: [PATCH 1/4] V7 more sampling fun 1 Message-ID: <20200415175145.GI31362@zn.tnic> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable To: speck@linutronix.de List-ID: On Mon, Mar 16, 2020 at 05:56:27PM -0700, speck for mark gross wrote: > From: mark gross > Subject: [PATCH 1/4] x86/cpu: Add stepping field to x86_cpu_id structure >=20 > Intel uses the same family/model for several CPUs. Sometimes the > stepping must be checked to tell them apart. >=20 > On X86 there can be at most 16 steppings, add steppings bitmask to > x86_cpu_id and X86_MATCH_VENDOR_FAMILY_MODEL_STEPPING_FEATURE macro and > support for matching against family/model/stepping. >=20 > Signed-off-by: Mark Gross > Reviewed-by: Tony Luck > --- > arch/x86/include/asm/cpu_device_id.h | 27 ++++++++++++++++++++++++--- > arch/x86/kernel/cpu/match.c | 7 ++++++- > include/linux/mod_devicetable.h | 2 ++ > 3 files changed, 32 insertions(+), 4 deletions(-) >=20 > diff --git a/arch/x86/include/asm/cpu_device_id.h b/arch/x86/include/asm/cp= u_device_id.h > index cf3d621c6892..4f0df2e46c95 100644 > --- a/arch/x86/include/asm/cpu_device_id.h > +++ b/arch/x86/include/asm/cpu_device_id.h > @@ -20,12 +20,14 @@ > #define X86_CENTAUR_FAM6_C7_D 0xd > #define X86_CENTAUR_FAM6_NANO 0xf > =20 > +#define X86_STEPPINGS(mins, maxs) GENMASK(maxs, mins) > /** > - * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching > + * X86_MATCH_VENDOR_FAM_MODEL_STEPPING_FEATURE - Base macro for CPU matchi= ng ^^^^^^^^ If the steppings argument is a bitmask of steppings, then the name should have "STEPPINGS" too to avoid confusion. > * @_vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY > * The name is expanded to X86_VENDOR_@_vendor > * @_family: The family number or X86_FAMILY_ANY > * @_model: The model number, model constant or X86_MODEL_ANY > + * @_steppings: Bitmask for steppings, stepping constant or X86_STEPPING_A= NY > * @_feature: A X86_FEATURE bit or X86_FEATURE_ANY > * @_data: Driver specific data or NULL. The internal storage > * format is unsigned long. The supplied value, pointer > @@ -37,15 +39,34 @@ > * into another macro at the usage site for good reasons, then please > * start this local macro with X86_MATCH to allow easy grepping. > */ > -#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(_vendor, _family, _model, \ > - _feature, _data) { \ > +#define X86_MATCH_VENDOR_FAM_MODEL_STEPPING_FEATURE(_vendor, _family, _mod= el, \ > + _steppings, _feature, _data) { \ > .vendor =3D X86_VENDOR_##_vendor, \ > .family =3D _family, \ > .model =3D _model, \ > + .steppings =3D _steppings, \ > .feature =3D _feature, \ > .driver_data =3D (unsigned long) _data \ > } > =20 > +/** > + * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching That isn't the base macro anymore. --=20 Regards/Gruss, Boris. SUSE Software Solutions Germany GmbH, GF: Felix Imend=C3=B6rffer, HRB 36809, = AG N=C3=BCrnberg --=20