s390/barrier: make use of fast-bcr facility

If the kernel gets compiled for at least z196, make use of
the fast-BCR facility.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h
index 6993b20..10a5088 100644
--- a/arch/s390/include/asm/barrier.h
+++ b/arch/s390/include/asm/barrier.h
@@ -15,7 +15,12 @@
 
 static inline void mb(void)
 {
+#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
+	/* Fast-BCR without checkpoint synchronization */
+	asm volatile("bcr 14,0" : : : "memory");
+#else
 	asm volatile("bcr 15,0" : : : "memory");
+#endif
 }
 
 #define rmb()				mb()