summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorNoam Camus <noamca@mellanox.com>2016-09-19 07:34:40 +0200
committerVineet Gupta <vgupta@synopsys.com>2016-09-30 23:48:18 +0200
commitce0f493240ad356bb18b7f3637d1705fc8fc5712 (patch)
treeecf98f4b1b730d47d651a7b5dc44e63b57efcb8e /arch
parentARCv2: Implement atomic64 based on LLOCKD/SCONDD instructions (diff)
downloadlinux-ce0f493240ad356bb18b7f3637d1705fc8fc5712.tar.xz
linux-ce0f493240ad356bb18b7f3637d1705fc8fc5712.zip
ARC: [plat-eznps] add missing atomic_fetch_xxx operations
Build brekeage since last changes to generic atomic operations. Added couple of missing macros which are now mandatory Signed-off-by: Noam Camus <noamca@mellanox.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arc/include/asm/atomic.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arc/include/asm/atomic.h b/arch/arc/include/asm/atomic.h
index d0e222e3776b..b65930a49589 100644
--- a/arch/arc/include/asm/atomic.h
+++ b/arch/arc/include/asm/atomic.h
@@ -285,6 +285,7 @@ static inline int atomic_fetch_##op(int i, atomic_t *v) \
ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
#define atomic_sub(i, v) atomic_add(-(i), (v))
#define atomic_sub_return(i, v) atomic_add_return(-(i), (v))
+#define atomic_fetch_sub(i, v) atomic_fetch_add(-(i), (v))
#undef ATOMIC_OPS
#define ATOMIC_OPS(op, c_op, asm_op) \
@@ -293,6 +294,7 @@ ATOMIC_OPS(add, +=, CTOP_INST_AADD_DI_R2_R2_R3)
ATOMIC_OPS(and, &=, CTOP_INST_AAND_DI_R2_R2_R3)
#define atomic_andnot(mask, v) atomic_and(~(mask), (v))
+#define atomic_fetch_andnot(mask, v) atomic_fetch_and(~(mask), (v))
ATOMIC_OPS(or, |=, CTOP_INST_AOR_DI_R2_R2_R3)
ATOMIC_OPS(xor, ^=, CTOP_INST_AXOR_DI_R2_R2_R3)