Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+2 -23
-1
arch/sparc/include/asm/barrier_32.h
··· 1 1 #ifndef __SPARC_BARRIER_H 2 2 #define __SPARC_BARRIER_H 3 3 4 - #include <asm/processor.h> /* for nop() */ 5 4 #include <asm-generic/barrier.h> 6 5 7 6 #endif /* !(__SPARC_BARRIER_H) */
+2 -19
arch/sparc/include/asm/barrier_64.h
··· 37 37 #define rmb() __asm__ __volatile__("":::"memory") 38 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 40 #define smp_store_release(p, v) \ 60 41 do { \ 61 42 compiletime_assert_atomic_type(*p); \ ··· 54 73 55 74 #define smp_mb__before_atomic() barrier() 56 75 #define smp_mb__after_atomic() barrier() 76 + 77 + #include <asm-generic/barrier.h> 57 78 58 79 #endif /* !(__SPARC64_BARRIER_H) */
-3
arch/sparc/include/asm/processor.h
··· 5 5 #else 6 6 #include <asm/processor_32.h> 7 7 #endif 8 - 9 - #define nop() __asm__ __volatile__ ("nop") 10 - 11 8 #endif