Skip to content

Commit 266d63a

Browse files
author
Ingo Molnar
committed
x86/cpufeature: Fix various quality problems in the <asm/cpu_device_hd.h> header
Thomas noticed that the new arch/x86/include/asm/cpu_device_id.h header is a train-wreck that didn't incorporate review feedback like not using __u8 in kernel-only headers. While at it also fix all the *other* problems this header has: - Use canonical names for the header guards. It's inexplicable why a non-standard guard was used. - Don't define the header guard to 1. Plus annotate the closing #endif as done absolutely every other header. Again, an inexplicable source of noise. - Move the kernel API calls provided by this header next to each other, there's absolutely no reason to have them spread apart in the header. - Align the INTEL_CPU_DESC() macro initializations vertically, this is easier to read and it's also the canonical style. - Actually name the macro arguments properly: instead of 'mod, step, rev', spell out 'model, stepping, revision' - it's not like we have a lack of characters in this header. - Actually make arguments macro-safe - again it's inexplicable why it wasn't done properly to begin with. Quite amazing how many problems a 41 lines header can contain. This kind of code quality is unacceptable, and it slipped through the review net of 2 developers and 2 maintainers, including myself, until Thomas noticed it. :-/ Reported-by: Thomas Gleixner <tglx@linutronix.de> Cc: Andi Kleen <ak@linux.intel.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 0f42b79 commit 266d63a

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

arch/x86/include/asm/cpu_device_id.h

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* SPDX-License-Identifier: GPL-2.0 */
2-
#ifndef _CPU_DEVICE_ID
3-
#define _CPU_DEVICE_ID 1
2+
#ifndef _ASM_X86_CPU_DEVICE_ID
3+
#define _ASM_X86_CPU_DEVICE_ID
44

55
/*
66
* Declare drivers belonging to specific x86 CPUs
@@ -9,8 +9,6 @@
99

1010
#include <linux/mod_devicetable.h>
1111

12-
extern const struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id *match);
13-
1412
/*
1513
* Match specific microcode revisions.
1614
*
@@ -22,21 +20,22 @@ extern const struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id *match);
2220
*/
2321

2422
struct x86_cpu_desc {
25-
__u8 x86_family;
26-
__u8 x86_vendor;
27-
__u8 x86_model;
28-
__u8 x86_stepping;
29-
__u32 x86_microcode_rev;
23+
u8 x86_family;
24+
u8 x86_vendor;
25+
u8 x86_model;
26+
u8 x86_stepping;
27+
u32 x86_microcode_rev;
3028
};
3129

32-
#define INTEL_CPU_DESC(mod, step, rev) { \
33-
.x86_family = 6, \
34-
.x86_vendor = X86_VENDOR_INTEL, \
35-
.x86_model = mod, \
36-
.x86_stepping = step, \
37-
.x86_microcode_rev = rev, \
30+
#define INTEL_CPU_DESC(model, stepping, revision) { \
31+
.x86_family = 6, \
32+
.x86_vendor = X86_VENDOR_INTEL, \
33+
.x86_model = (model), \
34+
.x86_stepping = (stepping), \
35+
.x86_microcode_rev = (revision), \
3836
}
3937

38+
extern const struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id *match);
4039
extern bool x86_cpu_has_min_microcode_rev(const struct x86_cpu_desc *table);
4140

42-
#endif
41+
#endif /* _ASM_X86_CPU_DEVICE_ID */

0 commit comments

Comments
 (0)