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 11:38:46 -0800 | 
| commit | 97577896f6b9c056fa0a5e9f6a608110cb3dcd33 (patch) | |
| tree | a77e4063575d59e946211a31019719230fb68da4 | |
| parent | 6e6104fe085026e6ef82cc5cc303d6c8ceb7e411 (diff) | |
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; | 
