aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-12-21 02:22:18 -0500
committerMichael S. Tsirkin <mst@redhat.com>2016-01-12 13:46:49 -0500
commit519be0438e6963b8efd2430e9d0595f5aeee915e (patch)
tree8cd6c08f5e43cebc052cc76d870e24b033d571b9 /arch/sparc
parent21535aaed9e33b4cc485ab2245dd2958816ee916 (diff)
sparc: reuse asm-generic/barrier.h
On sparc 64 bit dma_rmb, dma_wmb, smp_store_mb, smp_mb, smp_rmb, smp_wmb, read_barrier_depends and smp_read_barrier_depends match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. nop uses __asm__ __volatile but is otherwise identical to the generic version, drop that as well. This is in preparation to refactoring this code area. Note: nop() was in processor.h and not in barrier.h as on other architectures. Nothing seems to depend on it being there though. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/include/asm/barrier_32.h1
-rw-r--r--arch/sparc/include/asm/barrier_64.h21
-rw-r--r--arch/sparc/include/asm/processor.h3
3 files changed, 2 insertions, 23 deletions
diff --git a/arch/sparc/include/asm/barrier_32.h b/arch/sparc/include/asm/barrier_32.h
index ae69eda288f4..8059130a6cee 100644
--- a/arch/sparc/include/asm/barrier_32.h
+++ b/arch/sparc/include/asm/barrier_32.h
@@ -1,7 +1,6 @@
1#ifndef __SPARC_BARRIER_H 1#ifndef __SPARC_BARRIER_H
2#define __SPARC_BARRIER_H 2#define __SPARC_BARRIER_H
3 3
4#include <asm/processor.h> /* for nop() */
5#include <asm-generic/barrier.h> 4#include <asm-generic/barrier.h>
6 5
7#endif /* !(__SPARC_BARRIER_H) */ 6#endif /* !(__SPARC_BARRIER_H) */
diff --git a/arch/sparc/include/asm/barrier_64.h b/arch/sparc/include/asm/barrier_64.h
index 14a928601657..26c3f7247f2d 100644
--- a/arch/sparc/include/asm/barrier_64.h
+++ b/arch/sparc/include/asm/barrier_64.h
@@ -37,25 +37,6 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
37#define rmb() __asm__ __volatile__("":::"memory") 37#define rmb() __asm__ __volatile__("":::"memory")
38#define wmb() __asm__ __volatile__("":::"memory") 38#define wmb() __asm__ __volatile__("":::"memory")
39 39
40#define dma_rmb() rmb()
41#define dma_wmb() wmb()
42
43#define smp_store_mb(__var, __value) \
44 do { WRITE_ONCE(__var, __value); membar_safe("#StoreLoad"); } while(0)
45
46#ifdef CONFIG_SMP
47#define smp_mb() mb()
48#define smp_rmb() rmb()
49#define smp_wmb() wmb()
50#else
51#define smp_mb() __asm__ __volatile__("":::"memory")
52#define smp_rmb() __asm__ __volatile__("":::"memory")
53#define smp_wmb() __asm__ __volatile__("":::"memory")
54#endif
55
56#define read_barrier_depends() do { } while (0)
57#define smp_read_barrier_depends() do { } while (0)
58
59#define smp_store_release(p, v) \ 40#define smp_store_release(p, v) \
60do { \ 41do { \
61 compiletime_assert_atomic_type(*p); \ 42 compiletime_assert_atomic_type(*p); \
@@ -74,4 +55,6 @@ do { \
74#define smp_mb__before_atomic() barrier() 55#define smp_mb__before_atomic() barrier()
75#define smp_mb__after_atomic() barrier() 56#define smp_mb__after_atomic() barrier()
76 57
58#include <asm-generic/barrier.h>
59
77#endif /* !(__SPARC64_BARRIER_H) */ 60#endif /* !(__SPARC64_BARRIER_H) */
diff --git a/arch/sparc/include/asm/processor.h b/arch/sparc/include/asm/processor.h
index 2fe99e66e760..9da9646bf6c6 100644
--- a/arch/sparc/include/asm/processor.h
+++ b/arch/sparc/include/asm/processor.h
@@ -5,7 +5,4 @@
5#else 5#else
6#include <asm/processor_32.h> 6#include <asm/processor_32.h>
7#endif 7#endif
8
9#define nop() __asm__ __volatile__ ("nop")
10
11#endif 8#endif