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 @@ | |||
7 | #include <asm/asm.h> | 7 | #include <asm/asm.h> |
8 | 8 | ||
9 | #ifdef CONFIG_SMP | 9 | #ifdef CONFIG_SMP |
10 | .macro LOCK_PREFIX | 10 | .macro LOCK_PREFIX_HERE |
11 | 672: lock | ||
12 | .pushsection .smp_locks,"a" | 11 | .pushsection .smp_locks,"a" |
13 | .balign 4 | 12 | .balign 4 |
14 | .long 672b - . | 13 | .long 671f - . # offset |
15 | .popsection | 14 | .popsection |
16 | .endm | 15 | 671: |
16 | .endm | ||
17 | |||
18 | .macro LOCK_PREFIX insn:vararg | ||
19 | LOCK_PREFIX_HERE | ||
20 | lock \insn | ||
21 | .endm | ||
17 | #else | 22 | #else |
18 | .macro LOCK_PREFIX | 23 | .macro LOCK_PREFIX_HERE |
19 | .endm | 24 | .endm |
25 | |||
26 | .macro LOCK_PREFIX insn:vararg | ||
27 | .endm | ||
20 | #endif | 28 | #endif |
21 | 29 | ||
22 | /* | 30 | /* |