diff options
| author | Michael S. Tsirkin <mst@redhat.com> | 2015-12-21 02:22:18 -0500 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2016-01-12 13:46:50 -0500 |
| commit | abe114d9f0a80f27bc5040cd2287dca80423d13e (patch) | |
| tree | bdafde450ec21e4c37e618ac7324f35a773212f1 /arch/metag | |
| parent | 90ff6a17d0e07d689886cba4244674bfd41e7a2d (diff) | |
metag: reuse asm-generic/barrier.h
On metag dma_rmb, dma_wmb, smp_store_mb, read_barrier_depends,
smp_read_barrier_depends, smp_store_release and smp_load_acquire match
the asm-generic variants exactly. Drop the local definitions and pull in
asm-generic/barrier.h instead.
This is in preparation to refactoring this code area.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: James Hogan <james.hogan@imgtec.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Diffstat (limited to 'arch/metag')
| -rw-r--r-- | arch/metag/include/asm/barrier.h | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/arch/metag/include/asm/barrier.h b/arch/metag/include/asm/barrier.h index 172b7e5efc53..b5b778bb0b33 100644 --- a/arch/metag/include/asm/barrier.h +++ b/arch/metag/include/asm/barrier.h | |||
| @@ -44,9 +44,6 @@ static inline void wr_fence(void) | |||
| 44 | #define rmb() barrier() | 44 | #define rmb() barrier() |
| 45 | #define wmb() mb() | 45 | #define wmb() mb() |
| 46 | 46 | ||
| 47 | #define dma_rmb() rmb() | ||
| 48 | #define dma_wmb() wmb() | ||
| 49 | |||
| 50 | #ifndef CONFIG_SMP | 47 | #ifndef CONFIG_SMP |
| 51 | #define fence() do { } while (0) | 48 | #define fence() do { } while (0) |
| 52 | #define smp_mb() barrier() | 49 | #define smp_mb() barrier() |
| @@ -81,27 +78,9 @@ static inline void fence(void) | |||
| 81 | #endif | 78 | #endif |
| 82 | #endif | 79 | #endif |
| 83 | 80 | ||
| 84 | #define read_barrier_depends() do { } while (0) | ||
| 85 | #define smp_read_barrier_depends() do { } while (0) | ||
| 86 | |||
| 87 | #define smp_store_mb(var, value) do { WRITE_ONCE(var, value); smp_mb(); } while (0) | ||
| 88 | |||
| 89 | #define smp_store_release(p, v) \ | ||
| 90 | do { \ | ||
| 91 | compiletime_assert_atomic_type(*p); \ | ||
| 92 | smp_mb(); \ | ||
| 93 | WRITE_ONCE(*p, v); \ | ||
| 94 | } while (0) | ||
| 95 | |||
| 96 | #define smp_load_acquire(p) \ | ||
| 97 | ({ \ | ||
| 98 | typeof(*p) ___p1 = READ_ONCE(*p); \ | ||
| 99 | compiletime_assert_atomic_type(*p); \ | ||
| 100 | smp_mb(); \ | ||
| 101 | ___p1; \ | ||
| 102 | }) | ||
| 103 | |||
| 104 | #define smp_mb__before_atomic() barrier() | 81 | #define smp_mb__before_atomic() barrier() |
| 105 | #define smp_mb__after_atomic() barrier() | 82 | #define smp_mb__after_atomic() barrier() |
| 106 | 83 | ||
| 84 | #include <asm-generic/barrier.h> | ||
| 85 | |||
| 107 | #endif /* _ASM_METAG_BARRIER_H */ | 86 | #endif /* _ASM_METAG_BARRIER_H */ |
