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/include/asm | |
| 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/include/asm')
| -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) |
