mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00: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
@ -34,7 +34,7 @@ static inline unsigned long __generic_cmpxchg_local(volatile void *ptr,
|
||||
*(u16 *)ptr = (new & 0xffffu);
|
||||
break;
|
||||
case 4: prev = *(u32 *)ptr;
|
||||
if (prev == (old & 0xffffffffffu))
|
||||
if (prev == (old & 0xffffffffu))
|
||||
*(u32 *)ptr = (new & 0xffffffffu);
|
||||
break;
|
||||
case 8: prev = *(u64 *)ptr;
|
||||
|
Loading…
Reference in New Issue
Block a user