|
@@ -9,6 +9,7 @@
|
|
|
#endif
|
|
|
|
|
|
#define NCAPINTS 10 /* N 32-bit words worth of info */
|
|
|
+#define NBUGINTS 1 /* N 32-bit bug flags */
|
|
|
|
|
|
/*
|
|
|
* Note: If the comment begins with a quoted string, that string is used
|
|
@@ -216,6 +217,11 @@
|
|
|
#define X86_FEATURE_ADX (9*32+19) /* The ADCX and ADOX instructions */
|
|
|
#define X86_FEATURE_SMAP (9*32+20) /* Supervisor Mode Access Prevention */
|
|
|
|
|
|
+/*
|
|
|
+ * BUG word(s)
|
|
|
+ */
|
|
|
+#define X86_BUG(x) (NCAPINTS*32 + (x))
|
|
|
+
|
|
|
#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
|
|
|
|
|
|
#include <asm/asm.h>
|
|
@@ -401,6 +407,13 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
|
|
|
#define static_cpu_has(bit) boot_cpu_has(bit)
|
|
|
#endif
|
|
|
|
|
|
+#define cpu_has_bug(c, bit) cpu_has(c, (bit))
|
|
|
+#define set_cpu_bug(c, bit) set_cpu_cap(c, (bit))
|
|
|
+#define clear_cpu_bug(c, bit) clear_cpu_cap(c, (bit));
|
|
|
+
|
|
|
+#define static_cpu_has_bug(bit) static_cpu_has((bit))
|
|
|
+#define boot_cpu_has_bug(bit) cpu_has_bug(&boot_cpu_data, (bit))
|
|
|
+
|
|
|
#endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */
|
|
|
|
|
|
#endif /* _ASM_X86_CPUFEATURE_H */
|