diff options
Diffstat (limited to 'arch/x86/include/asm/alternative-asm.h')
| -rw-r--r-- | arch/x86/include/asm/alternative-asm.h | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h index 31b627b43a8e..8e4ea39e55d0 100644 --- a/arch/x86/include/asm/alternative-asm.h +++ b/arch/x86/include/asm/alternative-asm.h @@ -7,16 +7,24 @@  #include <asm/asm.h>  #ifdef CONFIG_SMP -	.macro LOCK_PREFIX -672:	lock +.macro LOCK_PREFIX_HERE  	.pushsection .smp_locks,"a"  	.balign 4 -	.long 672b - . +	.long 671f - .		# offset  	.popsection -	.endm +671: +.endm + +.macro LOCK_PREFIX insn:vararg +	LOCK_PREFIX_HERE +	lock \insn +.endm  #else -	.macro LOCK_PREFIX -	.endm +.macro LOCK_PREFIX_HERE +.endm + +.macro LOCK_PREFIX insn:vararg +.endm  #endif  /* |