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> Acked-by: David S. Miller <davem@davemloft.net> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: James Y Knight <jyknight@google.com> 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 Cc: sparclinux@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
|---|---|---|
| .. | ||
| ashldi3.S | ||
| ashrdi3.S | ||
| atomic32.c | ||
| atomic_64.S | ||
| bitext.c | ||
| bitops.S | ||
| blockops.S | ||
| bzero.S | ||
| checksum_32.S | ||
| checksum_64.S | ||
| clear_page.S | ||
| cmpdi2.c | ||
| copy_in_user.S | ||
| copy_page.S | ||
| copy_user.S | ||
| COPYING.LIB | ||
| csum_copy.S | ||
| csum_copy_from_user.S | ||
| csum_copy_to_user.S | ||
| divdi3.S | ||
| ffs.S | ||
| GENbzero.S | ||
| GENcopy_from_user.S | ||
| GENcopy_to_user.S | ||
| GENmemcpy.S | ||
| GENpage.S | ||
| GENpatch.S | ||
| hweight.S | ||
| iomap.c | ||
| ipcsum.S | ||
| ksyms.c | ||
| libgcc.h | ||
| locks.S | ||
| lshrdi3.S | ||
| Makefile | ||
| mcount.S | ||
| memcmp.S | ||
| memcpy.S | ||
| memmove.S | ||
| memscan_32.S | ||
| memscan_64.S | ||
| memset.S | ||
| muldi3.S | ||
| NG2copy_from_user.S | ||
| NG2copy_to_user.S | ||
| NG2memcpy.S | ||
| NG2patch.S | ||
| NG4clear_page.S | ||
| NG4copy_from_user.S | ||
| NG4copy_page.S | ||
| NG4copy_to_user.S | ||
| NG4memcpy.S | ||
| NG4memset.S | ||
| NG4patch.S | ||
| NGbzero.S | ||
| NGcopy_from_user.S | ||
| NGcopy_to_user.S | ||
| NGmemcpy.S | ||
| NGpage.S | ||
| NGpatch.S | ||
| PeeCeeI.c | ||
| strlen.S | ||
| strncmp_32.S | ||
| strncmp_64.S | ||
| U1copy_from_user.S | ||
| U1copy_to_user.S | ||
| U1memcpy.S | ||
| U3copy_from_user.S | ||
| U3copy_to_user.S | ||
| U3memcpy.S | ||
| U3patch.S | ||
| ucmpdi2.c | ||
| udivdi3.S | ||
| user_fixup.c | ||
| VISsave.S | ||
| xor.S | ||