Commit fbbd1407 authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik
Browse files

s390/barrier: factor out bcr_serialize()



Factor out bcr_serialize() inline assembly function which describes
what the bcr instruction is used for.
Use bcr_serialize() like before in mb(), but also in upcoming changes.

Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 25d36a85
Loading
Loading
Loading
Loading
+14 −10
Original line number Original line Diff line number Diff line
@@ -16,13 +16,17 @@


#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
/* Fast-BCR without checkpoint synchronization */
/* Fast-BCR without checkpoint synchronization */
#define __ASM_BARRIER "bcr 14,0\n"
#define __ASM_BCR_SERIALIZE "bcr 14,0\n"
#else
#else
#define __ASM_BARRIER "bcr 15,0\n"
#define __ASM_BCR_SERIALIZE "bcr 15,0\n"
#endif
#endif


#define mb() do {  asm volatile(__ASM_BARRIER : : : "memory"); } while (0)
static __always_inline void bcr_serialize(void)
{
	asm volatile(__ASM_BCR_SERIALIZE : : : "memory");
}


#define mb()		bcr_serialize()
#define rmb()		barrier()
#define rmb()		barrier()
#define wmb()		barrier()
#define wmb()		barrier()
#define dma_rmb()	mb()
#define dma_rmb()	mb()