Commit 82b44496 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

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: default avatarMichael S. Tsirkin <mst@redhat.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
parent a60514ba
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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);				\