locking,arch,avr32: Fold atomic_ops
authorPeter Zijlstra <peterz@infradead.org>
Wed, 9 Apr 2014 19:51:29 +0000 (21:51 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 14 Aug 2014 10:48:05 +0000 (12:48 +0200)
commitd325209b6000dcd13404ee946d2292e15a56718c
tree9adc93bd2a6a2b2f69c2b2034603c1c619106d4a
parent92ba1f530b4f90db78eb45f4b6598e75939146bd
locking,arch,avr32: Fold atomic_ops

Many of the atomic op implementations are the same except for one
instruction; fold the lot into a few CPP macros and reduce LoC.

This also prepares for easy addition of new ops.

Requires the asm_op because of eor.

AVR32 is a bit special in that its ADD/SUB instructions are not
symmetric. Its SUB instruction allows for an 21bit immediate.

Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20140531141445.GD16155@laptop.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/avr32/include/asm/atomic.h