diff options
Diffstat (limited to 'arch/x86/lib/atomic64_32.c')
-rw-r--r-- | arch/x86/lib/atomic64_32.c | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/arch/x86/lib/atomic64_32.c b/arch/x86/lib/atomic64_32.c index 1d98c9eb6eac..824fa0be55a3 100644 --- a/arch/x86/lib/atomic64_32.c +++ b/arch/x86/lib/atomic64_32.c | |||
@@ -66,31 +66,10 @@ void atomic64_set(atomic64_t *ptr, u64 new_val) | |||
66 | { | 66 | { |
67 | atomic64_xchg(ptr, new_val); | 67 | atomic64_xchg(ptr, new_val); |
68 | } | 68 | } |
69 | EXPORT_SYMBOL(atomic64_read); | 69 | EXPORT_SYMBOL(atomic64_set); |
70 | 70 | ||
71 | /** | 71 | /** |
72 | * atomic64_read - read atomic64 variable | ||
73 | * @ptr: pointer to type atomic64_t | ||
74 | * | ||
75 | * Atomically reads the value of @ptr and returns it. | ||
76 | */ | ||
77 | u64 atomic64_read(atomic64_t *ptr) | ||
78 | { | ||
79 | u64 res; | ||
80 | |||
81 | asm volatile( | ||
82 | "mov %%ebx, %%eax\n\t" | ||
83 | "mov %%ecx, %%edx\n\t" | ||
84 | LOCK_PREFIX "cmpxchg8b %1\n" | ||
85 | : "+A" (res) | ||
86 | : "m" (*ptr) | ||
87 | ); | ||
88 | |||
89 | return res; | ||
90 | } | ||
91 | EXPORT_SYMBOL(atomic64_read); | 72 | EXPORT_SYMBOL(atomic64_read); |
92 | |||
93 | /** | ||
94 | * atomic64_add_return - add and return | 73 | * atomic64_add_return - add and return |
95 | * @delta: integer value to add | 74 | * @delta: integer value to add |
96 | * @ptr: pointer to type atomic64_t | 75 | * @ptr: pointer to type atomic64_t |