* [PATCH 06/34] s390: reuse asm-generic/barrier.h [not found] ` <20151230132438.pkVODx0pefWOSdtdsS3__6hCaTMVlWGE1QLqGcSXcP8@z> @ 2015-12-30 13:24 ` Michael S. Tsirkin 0 siblings, 0 replies; 2+ messages in thread From: Michael S. Tsirkin @ 2015-12-30 13:24 UTC (permalink / raw) To: linux-kernel Cc: Peter Zijlstra, Arnd Bergmann, linux-arch, Andrew Cooper, virtualization, Stefano Stabellini, Martin Schwidefsky, Heiko Carstens, Ingo Molnar, Andrey Konovalov, Michael Ellerman, Christian Borntraeger, linux-s390 On s390 read_barrier_depends, smp_read_barrier_depends smp_store_mb(), smp_mb__before_atomic and smp_mb__after_atomic match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- arch/s390/include/asm/barrier.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h index d68e11e..c358c31 100644 --- a/arch/s390/include/asm/barrier.h +++ b/arch/s390/include/asm/barrier.h @@ -30,14 +30,6 @@ #define smp_rmb() rmb() #define smp_wmb() wmb() -#define read_barrier_depends() do { } while (0) -#define smp_read_barrier_depends() do { } while (0) - -#define smp_mb__before_atomic() smp_mb() -#define smp_mb__after_atomic() smp_mb() - -#define smp_store_mb(var, value) do { WRITE_ONCE(var, value); mb(); } while (0) - #define smp_store_release(p, v) \ do { \ compiletime_assert_atomic_type(*p); \ @@ -53,4 +45,6 @@ do { \ ___p1; \ }) +#include <asm-generic/barrier.h> + #endif /* __ASM_BARRIER_H */ -- MST ^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 23/34] s390: define __smp_XXX [not found] <1451473761-30019-1-git-send-email-mst@redhat.com> [not found] ` <20151230132438.pkVODx0pefWOSdtdsS3__6hCaTMVlWGE1QLqGcSXcP8@z> @ 2015-12-30 13:25 ` Michael S. Tsirkin 1 sibling, 0 replies; 2+ messages in thread From: Michael S. Tsirkin @ 2015-12-30 13:25 UTC (permalink / raw) To: linux-kernel Cc: linux-arch, linux-s390, Arnd Bergmann, Stefano Stabellini, Peter Zijlstra, Andrew Cooper, Davidlohr Bueso, Heiko Carstens, virtualization, Christian Borntraeger, Andrey Konovalov, Martin Schwidefsky, Ingo Molnar 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> --- arch/s390/include/asm/barrier.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h index c358c31..fbd25b2 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); \ -- MST ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-12-30 13:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1451473761-30019-1-git-send-email-mst@redhat.com>
[not found] ` <20151230132438.pkVODx0pefWOSdtdsS3__6hCaTMVlWGE1QLqGcSXcP8@z>
2015-12-30 13:24 ` [PATCH 06/34] s390: reuse asm-generic/barrier.h Michael S. Tsirkin
2015-12-30 13:25 ` [PATCH 23/34] s390: define __smp_XXX Michael S. Tsirkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).