aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/alternative-asm.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/alternative-asm.h')
-rw-r--r--arch/x86/include/asm/alternative-asm.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
index a63a68be1cc..372231c22a4 100644
--- a/arch/x86/include/asm/alternative-asm.h
+++ b/arch/x86/include/asm/alternative-asm.h
@@ -1,18 +1,31 @@
+#ifndef _ASM_X86_ALTERNATIVE_ASM_H
+#define _ASM_X86_ALTERNATIVE_ASM_H
+
#ifdef __ASSEMBLY__
#include <asm/asm.h>
#ifdef CONFIG_SMP
.macro LOCK_PREFIX
-1: lock
- .section .smp_locks,"a"
+672: lock
+ .pushsection .smp_locks,"a"
.balign 4
- .long 1b - .
- .previous
+ .long 672b - .
+ .popsection
.endm
#else
.macro LOCK_PREFIX
.endm
#endif
+.macro altinstruction_entry orig alt feature orig_len alt_len
+ .long \orig - .
+ .long \alt - .
+ .word \feature
+ .byte \orig_len
+ .byte \alt_len
+.endm
+
#endif /* __ASSEMBLY__ */
+
+#endif /* _ASM_X86_ALTERNATIVE_ASM_H */