x86: fix x86 cpuid keys used in alternative_smp() From: "Jan Beulich" By hard-coding the cpuid keys for alternative_smp() rather than using the symbolic constant it turned out that incorrect values were used on both i386 (0x68 instead of 0x69) and x86-64 (0x66 instead of 0x68). Signed-off-by: Jan Beulich Signed-off-by: Andi Kleen --- include/asm-i386/alternative.h | 2 +- include/asm-x86_64/alternative.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) Index: linux/include/asm-i386/alternative.h =================================================================== --- linux.orig/include/asm-i386/alternative.h +++ linux/include/asm-i386/alternative.h @@ -116,7 +116,7 @@ static inline void alternatives_smp_swit " .align 4\n" \ " .long 661b\n" /* label */ \ " .long 663f\n" /* new instruction */ \ - " .byte 0x68\n" /* X86_FEATURE_UP */ \ + " .byte " __stringify(X86_FEATURE_UP) "\n" \ " .byte 662b-661b\n" /* sourcelen */ \ " .byte 664f-663f\n" /* replacementlen */ \ ".previous\n" \ Index: linux/include/asm-x86_64/alternative.h =================================================================== --- linux.orig/include/asm-x86_64/alternative.h +++ linux/include/asm-x86_64/alternative.h @@ -4,6 +4,7 @@ #ifdef __KERNEL__ #include +#include struct alt_instr { u8 *instr; /* original instruction */ @@ -130,7 +131,7 @@ static inline void alternatives_smp_swit " .align 8\n" \ " .quad 661b\n" /* label */ \ " .quad 663f\n" /* new instruction */ \ - " .byte 0x66\n" /* X86_FEATURE_UP */ \ + " .byte " __stringify(X86_FEATURE_UP) "\n" \ " .byte 662b-661b\n" /* sourcelen */ \ " .byte 664f-663f\n" /* replacementlen */ \ ".previous\n" \