mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 13:03:25 +01:00
asm-generic: Fix 32 bit __generic_cmpxchg_local
Commit656e9007ef
("asm-generic: avoid __generic_cmpxchg_local warnings") introduced a typo that means the code is incorrect for 32 bit values. It will work fine for postive numbers, but will fail for negative numbers on a system where longs are 64 bit. Fixes:656e9007ef
("asm-generic: avoid __generic_cmpxchg_local warnings") Signed-off-by: David McKay <david.mckay@codasip.com> Signed-off-by: Stuart Menefy <stuart.menefy@codasip.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
d6e81532b1
commit
d93cca2f31
1 changed files with 1 additions and 1 deletions
|
@ -34,7 +34,7 @@ static inline unsigned long __generic_cmpxchg_local(volatile void *ptr,
|
||||||
*(u16 *)ptr = (new & 0xffffu);
|
*(u16 *)ptr = (new & 0xffffu);
|
||||||
break;
|
break;
|
||||||
case 4: prev = *(u32 *)ptr;
|
case 4: prev = *(u32 *)ptr;
|
||||||
if (prev == (old & 0xffffffffffu))
|
if (prev == (old & 0xffffffffu))
|
||||||
*(u32 *)ptr = (new & 0xffffffffu);
|
*(u32 *)ptr = (new & 0xffffffffu);
|
||||||
break;
|
break;
|
||||||
case 8: prev = *(u64 *)ptr;
|
case 8: prev = *(u64 *)ptr;
|
||||||
|
|
Loading…
Reference in a new issue