diff options
author | Luca Barbieri <luca@luca-barbieri.com> | 2010-03-01 19:55:47 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-03-01 20:38:46 +0100 |
commit | 97577896f6b9c056fa0a5e9f6a608110cb3dcd33 (patch) | |
tree | a77e4063575d59e946211a31019719230fb68da4 | |
parent | x86-32: Fix atomic64_add_unless return value convention (diff) | |
download | linux-97577896f6b9c056fa0a5e9f6a608110cb3dcd33.tar.xz linux-97577896f6b9c056fa0a5e9f6a608110cb3dcd33.zip |
lib: Fix atomic64_add_unless return value convention
atomic64_add_unless must return 1 if it perfomed the add and 0 otherwise.
The generic implementation did the opposite thing.
Reported-by: H. Peter Anvin <hpa@zytor.com>
Confirmed-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
LKML-Reference: <1267469749-11878-4-git-send-email-luca@luca-barbieri.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | lib/atomic64.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/atomic64.c b/lib/atomic64.c index 8bee16ec7524..a21c12bc727c 100644 --- a/lib/atomic64.c +++ b/lib/atomic64.c @@ -162,12 +162,12 @@ int atomic64_add_unless(atomic64_t *v, long long a, long long u) { unsigned long flags; spinlock_t *lock = lock_addr(v); - int ret = 1; + int ret = 0; spin_lock_irqsave(lock, flags); if (v->counter != u) { v->counter += a; - ret = 0; + ret = 1; } spin_unlock_irqrestore(lock, flags); return ret; |