diff options
author | Peter Zijlstra <peterz@infradead.org> | 2014-03-13 14:00:37 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-04-18 05:40:33 -0400 |
commit | 710adaa913169d7183cdf0de41c2a349101ff615 (patch) | |
tree | dc28c888bb2e40c45bdbfa310d44aa7d90be0cea /arch/avr32 | |
parent | 8715466b602729061394df18864ea64b97951589 (diff) |
arch,avr32: Convert smp_mb__*()
AVR32's mb() implementation is a compiler barrier(), therefore it all
doesn't matter, fully rely on whatever asm-generic/barrier.h
generates.
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/n/tip-8gow97a7mapmnec0pvf729pj@git.kernel.org
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/avr32')
-rw-r--r-- | arch/avr32/include/asm/atomic.h | 5 | ||||
-rw-r--r-- | arch/avr32/include/asm/bitops.h | 9 |
2 files changed, 2 insertions, 12 deletions
diff --git a/arch/avr32/include/asm/atomic.h b/arch/avr32/include/asm/atomic.h index 61407279208a..0780f3f2415b 100644 --- a/arch/avr32/include/asm/atomic.h +++ b/arch/avr32/include/asm/atomic.h | |||
@@ -183,9 +183,4 @@ static inline int atomic_sub_if_positive(int i, atomic_t *v) | |||
183 | 183 | ||
184 | #define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v) | 184 | #define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v) |
185 | 185 | ||
186 | #define smp_mb__before_atomic_dec() barrier() | ||
187 | #define smp_mb__after_atomic_dec() barrier() | ||
188 | #define smp_mb__before_atomic_inc() barrier() | ||
189 | #define smp_mb__after_atomic_inc() barrier() | ||
190 | |||
191 | #endif /* __ASM_AVR32_ATOMIC_H */ | 186 | #endif /* __ASM_AVR32_ATOMIC_H */ |
diff --git a/arch/avr32/include/asm/bitops.h b/arch/avr32/include/asm/bitops.h index ebe7ad3f490b..910d5374ce59 100644 --- a/arch/avr32/include/asm/bitops.h +++ b/arch/avr32/include/asm/bitops.h | |||
@@ -13,12 +13,7 @@ | |||
13 | #endif | 13 | #endif |
14 | 14 | ||
15 | #include <asm/byteorder.h> | 15 | #include <asm/byteorder.h> |
16 | 16 | #include <asm/barrier.h> | |
17 | /* | ||
18 | * clear_bit() doesn't provide any barrier for the compiler | ||
19 | */ | ||
20 | #define smp_mb__before_clear_bit() barrier() | ||
21 | #define smp_mb__after_clear_bit() barrier() | ||
22 | 17 | ||
23 | /* | 18 | /* |
24 | * set_bit - Atomically set a bit in memory | 19 | * set_bit - Atomically set a bit in memory |
@@ -67,7 +62,7 @@ static inline void set_bit(int nr, volatile void * addr) | |||
67 | * | 62 | * |
68 | * clear_bit() is atomic and may not be reordered. However, it does | 63 | * clear_bit() is atomic and may not be reordered. However, it does |
69 | * not contain a memory barrier, so if it is used for locking purposes, | 64 | * not contain a memory barrier, so if it is used for locking purposes, |
70 | * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() | 65 | * you should call smp_mb__before_atomic() and/or smp_mb__after_atomic() |
71 | * in order to ensure changes are visible on other processors. | 66 | * in order to ensure changes are visible on other processors. |
72 | */ | 67 | */ |
73 | static inline void clear_bit(int nr, volatile void * addr) | 68 | static inline void clear_bit(int nr, volatile void * addr) |