diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2015-12-27 14:04:42 +0100 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2016-01-12 19:46:56 +0100 |
commit | 82b44496abd91781ed4120c3b0c1a3d111c3e28e (patch) | |
tree | 110f832120aa11c2d095b3b0a5cddf7fa0b49eda /arch/s390/include/asm/barrier.h | |
parent | mips: define __smp_xxx (diff) | |
download | linux-82b44496abd91781ed4120c3b0c1a3d111c3e28e.tar.xz linux-82b44496abd91781ed4120c3b0c1a3d111c3e28e.zip |
s390: define __smp_xxx
This defines __smp_xxx barriers for s390,
for use by virtualization.
Some smp_xxx barriers are removed as they are
defined correctly by asm-generic/barriers.h
Note: smp_mb, smp_rmb and smp_wmb are defined as full barriers
unconditionally on this architecture.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Diffstat (limited to 'arch/s390/include/asm/barrier.h')
-rw-r--r-- | arch/s390/include/asm/barrier.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h index c358c31a7f07..fbd25b299c8b 100644 --- a/arch/s390/include/asm/barrier.h +++ b/arch/s390/include/asm/barrier.h @@ -26,18 +26,21 @@ #define wmb() barrier() #define dma_rmb() mb() #define dma_wmb() mb() -#define smp_mb() mb() -#define smp_rmb() rmb() -#define smp_wmb() wmb() - -#define smp_store_release(p, v) \ +#define __smp_mb() mb() +#define __smp_rmb() rmb() +#define __smp_wmb() wmb() +#define smp_mb() __smp_mb() +#define smp_rmb() __smp_rmb() +#define smp_wmb() __smp_wmb() + +#define __smp_store_release(p, v) \ do { \ compiletime_assert_atomic_type(*p); \ barrier(); \ WRITE_ONCE(*p, v); \ } while (0) -#define smp_load_acquire(p) \ +#define __smp_load_acquire(p) \ ({ \ typeof(*p) ___p1 = READ_ONCE(*p); \ compiletime_assert_atomic_type(*p); \ |