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:49 -0500 |
commit | 519be0438e6963b8efd2430e9d0595f5aeee915e (patch) | |
tree | 8cd6c08f5e43cebc052cc76d870e24b033d571b9 /arch/sparc | |
parent | 21535aaed9e33b4cc485ab2245dd2958816ee916 (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.h | 1 | ||||
-rw-r--r-- | arch/sparc/include/asm/barrier_64.h | 21 | ||||
-rw-r--r-- | arch/sparc/include/asm/processor.h | 3 |
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) \ |
60 | do { \ | 41 | do { \ |
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 |