Skip to content

Commit

Permalink
[PATCH] x86: fix x86 cpuid keys used in alternative_smp()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jan Beulich authored and Linus Torvalds committed Aug 30, 2006
1 parent 29fe5f3 commit 61171b8
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
2 changes: 1 addition & 1 deletion include/asm-i386/alternative.h
Original file line number Diff line number Diff line change
Expand Up @@ -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" \
Expand Down
3 changes: 2 additions & 1 deletion include/asm-x86_64/alternative.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#ifdef __KERNEL__

#include <linux/types.h>
#include <asm/cpufeature.h>

struct alt_instr {
u8 *instr; /* original instruction */
Expand Down Expand Up @@ -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" \
Expand Down

0 comments on commit 61171b8

Please sign in to comment.