diff options
Diffstat (limited to 'arch/x86/lib/cmpxchg.c')
| -rw-r--r-- | arch/x86/lib/cmpxchg.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/arch/x86/lib/cmpxchg.c b/arch/x86/lib/cmpxchg.c index 2056ccf572cc..5d619f6df3ee 100644 --- a/arch/x86/lib/cmpxchg.c +++ b/arch/x86/lib/cmpxchg.c | |||
| @@ -52,21 +52,3 @@ unsigned long cmpxchg_386_u32(volatile void *ptr, u32 old, u32 new) | |||
| 52 | } | 52 | } |
| 53 | EXPORT_SYMBOL(cmpxchg_386_u32); | 53 | EXPORT_SYMBOL(cmpxchg_386_u32); |
| 54 | #endif | 54 | #endif |
| 55 | |||
| 56 | #ifndef CONFIG_X86_CMPXCHG64 | ||
| 57 | unsigned long long cmpxchg_486_u64(volatile void *ptr, u64 old, u64 new) | ||
| 58 | { | ||
| 59 | u64 prev; | ||
| 60 | unsigned long flags; | ||
| 61 | |||
| 62 | /* Poor man's cmpxchg8b for 386 and 486. Unsuitable for SMP */ | ||
| 63 | local_irq_save(flags); | ||
| 64 | prev = *(u64 *)ptr; | ||
| 65 | if (prev == old) | ||
| 66 | *(u64 *)ptr = new; | ||
| 67 | local_irq_restore(flags); | ||
| 68 | return prev; | ||
| 69 | } | ||
| 70 | EXPORT_SYMBOL(cmpxchg_486_u64); | ||
| 71 | #endif | ||
| 72 | |||
