arch: conditionally define smp_{mb,rmb,wmb}
authorVineet Gupta <vgupta@synopsys.com>
Wed, 11 Mar 2015 16:12:02 +0000 (21:42 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Thu, 25 Jun 2015 00:30:17 +0000 (06:00 +0530)
That way arches can define the minimal versions and still #include
asm-generic for defaults (vs. defining defaults in arch code)

See new barrier.h in arc for usage !

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
include/asm-generic/barrier.h

index f5c40b0fadc2a50be563304727db2e7ad7fe6699..270b7c989ea102477b36ce2fab92bb39098361e4 100644 (file)
 #endif
 
 #ifdef CONFIG_SMP
+
+#ifndef smp_mb
 #define smp_mb()       mb()
+#endif
+
+#ifndef smp_rmb
 #define smp_rmb()      rmb()
+#endif
+
+#ifndef smp_wmb
 #define smp_wmb()      wmb()
+#endif
+
+#ifndef smp_read_barrier_depends
 #define smp_read_barrier_depends()     read_barrier_depends()
+#endif
+
 #else
+#ifndef smp_mb
 #define smp_mb()       barrier()
+#endif
+
+#ifndef smp_rmb
 #define smp_rmb()      barrier()
+#endif
+
+#ifndef smp_wmb
 #define smp_wmb()      barrier()
+#endif
+
+#ifndef smp_read_barrier_depends
 #define smp_read_barrier_depends()     do { } while (0)
 #endif
 
+#endif
+
 #ifndef set_mb
 #define set_mb(var, value)  do { (var) = (value); mb(); } while (0)
 #endif