linux/arch
Peter Zijlstra a8bcccaba1 locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
Implement FETCH-OP atomic primitives, these are very similar to the
existing OP-RETURN primitives we already have, except they return the
value of the atomic variable _before_ modification.

This is especially useful for irreversible operations -- such as
bitops (because it becomes impossible to reconstruct the state prior
to modification).

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-06-16 10:48:31 +02:00
..
alpha locking/atomic, arch/alpha: Implement atomic{,64}_fetch_{add,sub,and,andnot,or,xor}() 2016-06-16 10:48:19 +02:00
arc locking/atomic, arch/arc: Implement atomic_fetch_{add,sub,and,andnot,or,xor}() 2016-06-16 10:48:20 +02:00
arm locking/atomic, arch/arm: Implement atomic{,64}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}() 2016-06-16 10:48:20 +02:00
arm64 locking/atomic, arch/arm64: Implement atomic{,64}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}() for LSE instructions 2016-06-16 10:48:22 +02:00
avr32 locking/atomic, arch/avr32: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:23 +02:00
blackfin locking/atomic, arch/blackfin: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:23 +02:00
c6x asm-generic patch for 4.7 2016-05-24 15:24:37 -07:00
cris MTD updates for v4.7: 2016-05-24 11:00:20 -07:00
frv locking/atomic, arch/frv: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:24 +02:00
h8300 locking/atomic, arch/h8300: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:24 +02:00
hexagon locking/atomic, arch/hexagon: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:25 +02:00
ia64 locking/atomic, arch/ia64: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:25 +02:00
m32r locking/atomic, arch/m32r: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:25 +02:00
m68k locking/atomic, arch/m68k: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:26 +02:00
metag locking/atomic, arch/metag: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:26 +02:00
microblaze Merge branch 'hash' of git://ftp.sciencehorizons.net/linux 2016-05-28 16:15:25 -07:00
mips locking/atomic, arch/mips: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:27 +02:00
mn10300 locking/atomic, arch/mn10300: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:27 +02:00
nios2 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-05-26 22:01:22 -07:00
openrisc asm-generic patch for 4.7 2016-05-24 15:24:37 -07:00
parisc locking/atomic, arch/parisc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:28 +02:00
powerpc locking/atomic, arch/powerpc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}{,_relaxed,_acquire,_release}() 2016-06-16 10:48:28 +02:00
s390 locking/atomic, arch/s390: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:29 +02:00
score asm-generic patch for 4.7 2016-05-24 15:24:37 -07:00
sh locking/atomic, arch/sh: Implement atomic_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:29 +02:00
sparc locking/atomic, arch/sparc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:30 +02:00
tile locking/atomic, arch/tile: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:30 +02:00
um Merge branch 'for-linus-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml 2016-05-27 18:54:59 -07:00
unicore32 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-05-26 22:01:22 -07:00
x86 locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:31 +02:00
xtensa locking/spinlock, arch: Update and fix spin_unlock_wait() implementations 2016-06-14 11:55:15 +02:00
.gitignore
Kconfig Merge branch 'hash' of git://ftp.sciencehorizons.net/linux 2016-05-28 16:15:25 -07:00