linux/arch/powerpc
Boqun Feng dc53617c4a powerpc: atomic: Implement atomic{, 64}_*_return_* variants
On powerpc, acquire and release semantics can be achieved with
lightweight barriers("lwsync" and "ctrl+isync"), which can be used to
implement __atomic_op_{acquire,release}.

For release semantics, since we only need to ensure all memory accesses
that issue before must take effects before the -store- part of the
atomics, "lwsync" is what we only need. On the platform without
"lwsync", "sync" should be used. Therefore in __atomic_op_release() we
use PPC_RELEASE_BARRIER.

For acquire semantics, "lwsync" is what we only need for the similar
reason.  However on the platform without "lwsync", we can use "isync"
rather than "sync" as an acquire barrier. Therefore in
__atomic_op_acquire() we use PPC_ACQUIRE_BARRIER, which is barrier() on
UP, "lwsync" if available and "isync" otherwise.

Implement atomic{,64}_{add,sub,inc,dec}_return_relaxed, and build other
variants with these helpers.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-02-18 00:11:21 +11:00
..
boot powerpc updates for 4.5 2016-01-15 13:18:47 -08:00
configs powerpc/85xx: Enable TWR_P102x in mpc85xx_basic_defconfig 2015-12-22 18:23:21 -06:00
crypto powerpc: Create disable_kernel_{fp,altivec,vsx,spe}() 2015-12-01 13:52:25 +11:00
include powerpc: atomic: Implement atomic{, 64}_*_return_* variants 2016-02-18 00:11:21 +11:00
kernel powerpc: Fix kgdb on little endian ppc64le 2016-02-18 00:03:26 +11:00
kvm s390 and POWER bug fixes, plus enabling the KVM-VFIO interface on s390. 2016-01-27 10:50:42 -08:00
lib powerpc: Create disable_kernel_{fp,altivec,vsx,spe}() 2015-12-01 13:52:25 +11:00
math-emu
mm powerpc/mm: Allow user space to map rtas_rmo_buf 2016-01-25 16:31:13 +11:00
net net: filter: make JITs zero A for SKF_AD_ALU_XOR_X 2016-01-06 00:43:52 -05:00
oprofile powerpc: Remove mtmsrd(), use existing mtmsr() 2015-07-13 15:47:28 +10:00
perf powerpc/perf/hv-gpci: Increase request buffer size 2016-02-10 14:30:56 +11:00
platforms powerpc/powernv: allocate sparse PE# when using M64 BAR in Single PE mode 2016-02-10 12:04:58 +11:00
sysdev mm, dax, pmem: introduce pfn_t 2016-01-15 17:56:32 -08:00
xmon powerpc/xmon: Add xmon command to dump process/task similar to ps(1) 2016-02-10 10:22:04 +11:00
Kconfig dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
Kconfig.debug powerpc updates for 4.5 2016-01-15 13:18:47 -08:00
Makefile powerpc/cell: Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU 2015-10-19 19:51:18 +11:00
relocs_check.sh