mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-11 07:30:16 +00:00
[PATCH] x86: fix x86 cpuid keys used in alternative_smp()
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 <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
29fe5f3baf
commit
61171b8dbd
@ -116,7 +116,7 @@ static inline void alternatives_smp_switch(int smp) {}
|
||||
" .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" \
|
||||
|
@ -4,6 +4,7 @@
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/cpufeature.h>
|
||||
|
||||
struct alt_instr {
|
||||
u8 *instr; /* original instruction */
|
||||
@ -130,7 +131,7 @@ static inline void alternatives_smp_switch(int smp) {}
|
||||
" .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" \
|
||||
|
Loading…
x
Reference in New Issue
Block a user