Skip to content

Commit 16639bd

Browse files
committed
x86/cpu: Shorten CPU matching macro
jira LE-4694 Rebuild_History Non-Buildable kernel-6.12.0-55.43.1.el10_0 commit-author Pawan Gupta <pawan.kumar.gupta@linux.intel.com> commit c339040 To add cpu-type to the existing CPU matching infrastructure, the base macro X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE need to append _CPU_TYPE. This makes an already long name longer, and somewhat incomprehensible. To avoid this, rename the base macro to X86_MATCH_CPU. The macro name doesn't need to explicitly tell everything that it matches. The arguments to the macro already hint at that. For consistency, use this base macro to define X86_MATCH_VFM and friends. Remove unused X86_MATCH_VENDOR_FAM_MODEL_FEATURE while at it. [ bp: Massage commit message. ] Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Dave Hansen <dave.hansen@linux.intel.com> Link: https://lore.kernel.org/r/20250311-add-cpu-type-v8-2-e8514dcaaff2@linux.intel.com (cherry picked from commit c339040) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent 891ef0f commit 16639bd

File tree

1 file changed

+26
-84
lines changed

1 file changed

+26
-84
lines changed

arch/x86/include/asm/cpu_device_id.h

Lines changed: 26 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
#define X86_CPU_ID_FLAG_ENTRY_VALID BIT(0)
5858

5959
/**
60-
* X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE - Base macro for CPU matching
60+
* X86_MATCH_CPU - Base macro for CPU matching
6161
* @_vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
6262
* The name is expanded to X86_VENDOR_@_vendor
6363
* @_family: The family number or X86_FAMILY_ANY
@@ -74,19 +74,7 @@
7474
* into another macro at the usage site for good reasons, then please
7575
* start this local macro with X86_MATCH to allow easy grepping.
7676
*/
77-
#define X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(_vendor, _family, _model, \
78-
_steppings, _feature, _data) { \
79-
.vendor = X86_VENDOR_##_vendor, \
80-
.family = _family, \
81-
.model = _model, \
82-
.steppings = _steppings, \
83-
.feature = _feature, \
84-
.flags = X86_CPU_ID_FLAG_ENTRY_VALID, \
85-
.driver_data = (unsigned long) _data \
86-
}
87-
88-
#define X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE(_vendor, _family, _model, \
89-
_steppings, _feature, _data) { \
77+
#define X86_MATCH_CPU(_vendor, _family, _model, _steppings, _feature, _data) { \
9078
.vendor = _vendor, \
9179
.family = _family, \
9280
.model = _model, \
@@ -96,24 +84,6 @@
9684
.driver_data = (unsigned long) _data \
9785
}
9886

99-
/**
100-
* X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Macro for CPU matching
101-
* @_vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
102-
* The name is expanded to X86_VENDOR_@_vendor
103-
* @_family: The family number or X86_FAMILY_ANY
104-
* @_model: The model number, model constant or X86_MODEL_ANY
105-
* @_feature: A X86_FEATURE bit or X86_FEATURE_ANY
106-
* @_data: Driver specific data or NULL. The internal storage
107-
* format is unsigned long. The supplied value, pointer
108-
* etc. is casted to unsigned long internally.
109-
*
110-
* The steppings arguments of X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE() is
111-
* set to wildcards.
112-
*/
113-
#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model, feature, data) \
114-
X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(vendor, family, model, \
115-
X86_STEPPING_ANY, feature, data)
116-
11787
/**
11888
* X86_MATCH_VENDOR_FAM_FEATURE - Macro for matching vendor, family and CPU feature
11989
* @vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
@@ -123,13 +93,10 @@
12393
* @data: Driver specific data or NULL. The internal storage
12494
* format is unsigned long. The supplied value, pointer
12595
* etc. is casted to unsigned long internally.
126-
*
127-
* All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
128-
* set to wildcards.
12996
*/
130-
#define X86_MATCH_VENDOR_FAM_FEATURE(vendor, family, feature, data) \
131-
X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, \
132-
X86_MODEL_ANY, feature, data)
97+
#define X86_MATCH_VENDOR_FAM_FEATURE(vendor, family, feature, data) \
98+
X86_MATCH_CPU(X86_VENDOR_##vendor, family, X86_MODEL_ANY, \
99+
X86_STEPPING_ANY, feature, data)
133100

134101
/**
135102
* X86_MATCH_VENDOR_FEATURE - Macro for matching vendor and CPU feature
@@ -139,25 +106,21 @@
139106
* @data: Driver specific data or NULL. The internal storage
140107
* format is unsigned long. The supplied value, pointer
141108
* etc. is casted to unsigned long internally.
142-
*
143-
* All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
144-
* set to wildcards.
145109
*/
146-
#define X86_MATCH_VENDOR_FEATURE(vendor, feature, data) \
147-
X86_MATCH_VENDOR_FAM_FEATURE(vendor, X86_FAMILY_ANY, feature, data)
110+
#define X86_MATCH_VENDOR_FEATURE(vendor, feature, data) \
111+
X86_MATCH_CPU(X86_VENDOR_##vendor, X86_FAMILY_ANY, X86_MODEL_ANY, \
112+
X86_STEPPING_ANY, feature, data)
148113

149114
/**
150115
* X86_MATCH_FEATURE - Macro for matching a CPU feature
151116
* @feature: A X86_FEATURE bit
152117
* @data: Driver specific data or NULL. The internal storage
153118
* format is unsigned long. The supplied value, pointer
154119
* etc. is casted to unsigned long internally.
155-
*
156-
* All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
157-
* set to wildcards.
158120
*/
159-
#define X86_MATCH_FEATURE(feature, data) \
160-
X86_MATCH_VENDOR_FEATURE(ANY, feature, data)
121+
#define X86_MATCH_FEATURE(feature, data) \
122+
X86_MATCH_CPU(X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, \
123+
X86_STEPPING_ANY, feature, data)
161124

162125
/**
163126
* X86_MATCH_VENDOR_FAM_MODEL - Match vendor, family and model
@@ -168,13 +131,10 @@
168131
* @data: Driver specific data or NULL. The internal storage
169132
* format is unsigned long. The supplied value, pointer
170133
* etc. is casted to unsigned long internally.
171-
*
172-
* All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
173-
* set to wildcards.
174134
*/
175-
#define X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, data) \
176-
X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model, \
177-
X86_FEATURE_ANY, data)
135+
#define X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, data) \
136+
X86_MATCH_CPU(X86_VENDOR_##vendor, family, model, X86_STEPPING_ANY, \
137+
X86_FEATURE_ANY, data)
178138

179139
/**
180140
* X86_MATCH_VENDOR_FAM - Match vendor and family
@@ -184,28 +144,21 @@
184144
* @data: Driver specific data or NULL. The internal storage
185145
* format is unsigned long. The supplied value, pointer
186146
* etc. is casted to unsigned long internally.
187-
*
188-
* All other missing arguments to X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
189-
* set of wildcards.
190147
*/
191-
#define X86_MATCH_VENDOR_FAM(vendor, family, data) \
192-
X86_MATCH_VENDOR_FAM_MODEL(vendor, family, X86_MODEL_ANY, data)
148+
#define X86_MATCH_VENDOR_FAM(vendor, family, data) \
149+
X86_MATCH_CPU(X86_VENDOR_##vendor, family, X86_MODEL_ANY, \
150+
X86_STEPPING_ANY, X86_FEATURE_ANY, data)
193151

194152
/**
195153
* X86_MATCH_VFM - Match encoded vendor/family/model
196154
* @vfm: Encoded 8-bits each for vendor, family, model
197155
* @data: Driver specific data or NULL. The internal storage
198156
* format is unsigned long. The supplied value, pointer
199157
* etc. is cast to unsigned long internally.
200-
*
201-
* Stepping and feature are set to wildcards
202158
*/
203-
#define X86_MATCH_VFM(vfm, data) \
204-
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
205-
VFM_VENDOR(vfm), \
206-
VFM_FAMILY(vfm), \
207-
VFM_MODEL(vfm), \
208-
X86_STEPPING_ANY, X86_FEATURE_ANY, data)
159+
#define X86_MATCH_VFM(vfm, data) \
160+
X86_MATCH_CPU(VFM_VENDOR(vfm), VFM_FAMILY(vfm), VFM_MODEL(vfm), \
161+
X86_STEPPING_ANY, X86_FEATURE_ANY, data)
209162

210163
#define __X86_STEPPINGS(mins, maxs) GENMASK(maxs, mins)
211164
/**
@@ -217,16 +170,10 @@
217170
* @data: Driver specific data or NULL. The internal storage
218171
* format is unsigned long. The supplied value, pointer
219172
* etc. is cast to unsigned long internally.
220-
*
221-
* feature is set to wildcard
222173
*/
223-
#define X86_MATCH_VFM_STEPS(vfm, min_step, max_step, data) \
224-
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
225-
VFM_VENDOR(vfm), \
226-
VFM_FAMILY(vfm), \
227-
VFM_MODEL(vfm), \
228-
__X86_STEPPINGS(min_step, max_step), \
229-
X86_FEATURE_ANY, data)
174+
#define X86_MATCH_VFM_STEPS(vfm, min_step, max_step, data) \
175+
X86_MATCH_CPU(VFM_VENDOR(vfm), VFM_FAMILY(vfm), VFM_MODEL(vfm), \
176+
__X86_STEPPINGS(min_step, max_step), X86_FEATURE_ANY, data)
230177

231178
/**
232179
* X86_MATCH_VFM_FEATURE - Match encoded vendor/family/model/feature
@@ -235,15 +182,10 @@
235182
* @data: Driver specific data or NULL. The internal storage
236183
* format is unsigned long. The supplied value, pointer
237184
* etc. is cast to unsigned long internally.
238-
*
239-
* Steppings is set to wildcard
240185
*/
241-
#define X86_MATCH_VFM_FEATURE(vfm, feature, data) \
242-
X86_MATCH_VENDORID_FAM_MODEL_STEPPINGS_FEATURE( \
243-
VFM_VENDOR(vfm), \
244-
VFM_FAMILY(vfm), \
245-
VFM_MODEL(vfm), \
246-
X86_STEPPING_ANY, feature, data)
186+
#define X86_MATCH_VFM_FEATURE(vfm, feature, data) \
187+
X86_MATCH_CPU(VFM_VENDOR(vfm), VFM_FAMILY(vfm), VFM_MODEL(vfm), \
188+
X86_STEPPING_ANY, feature, data)
247189

248190
/*
249191
* Match specific microcode revisions.

0 commit comments

Comments
 (0)