x86: atomic64: Improve atomic64_xchg()
authorIngo Molnar <mingo@elte.hu>
Fri, 3 Jul 2009 17:56:36 +0000 (19:56 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 3 Jul 2009 18:23:55 +0000 (20:23 +0200)
commit3a8d1788b37435baf6c296f4ea8beb4fa4955f44
tree0db4ee093c0d9c8cb66321945fc024e5b1d3a8fd
parent1fde902d52ee13ab9fab155bbae757fdf7daf0c1
x86: atomic64: Improve atomic64_xchg()

Remove the read-first logic from atomic64_xchg() and simplify
the loop.

This function was the last user of __atomic64_read() - remove it.

Also, change the 'real_val' assumption from the somewhat quirky
1ULL << 32 value to the (just as arbitrary, but simpler) value
of 0.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>
LKML-Reference: <tip-05118ab8859492ac9ddda0154cf90e37b0a4a0b0@git.kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/atomic_32.h
arch/x86/lib/atomic64_32.c