From 971bdf050b2a65802609c771980fc8556f084923 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Fri, 3 Jul 2009 12:14:27 +0200 Subject: [PATCH] --- yaml --- r: 155209 b: refs/heads/master c: aacf682fd8c66b57383c407eecd9d4a28264ee91 h: refs/heads/master i: 155207: 937a0037421902186e410e0e9f45562f30489c2c v: v3 --- [refs] | 2 +- trunk/arch/x86/lib/atomic64_32.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 780104bfb862..0bc199d4ed37 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b7882b7c65abb00194bdb3d4a22d27d70fcc59ba +refs/heads/master: aacf682fd8c66b57383c407eecd9d4a28264ee91 diff --git a/trunk/arch/x86/lib/atomic64_32.c b/trunk/arch/x86/lib/atomic64_32.c index d21e725d3d84..afa5d444918b 100644 --- a/trunk/arch/x86/lib/atomic64_32.c +++ b/trunk/arch/x86/lib/atomic64_32.c @@ -67,13 +67,9 @@ void atomic64_set(atomic64_t *ptr, u64 new_val) */ u64 atomic64_read(atomic64_t *ptr) { - u64 curr_val; + u64 old = 1LL << 32; - do { - curr_val = __atomic64_read(ptr); - } while (atomic64_cmpxchg(ptr, curr_val, curr_val) != curr_val); - - return curr_val; + return cmpxchg8b(&ptr->counter, old, old); } /**