[ARM] 4241/1: Define mb() as compiler barrier on a uniprocessor system

Currently, the mb() is defined as a DMB operation on ARMv6, even for
UP systems. This patch defines mb() as a compiler barrier only. For
the SMP case, the smp_* variants should be used anyway and the patch
defines them as DMB.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Catalin Marinas and committed by Russell King 9623b373 5bfe8cb6

+19 -21
+19 -21
include/asm-arm/system.h
··· 167 167 : : "r" (0) : "memory") 168 168 #define dmb() __asm__ __volatile__ ("" : : : "memory") 169 169 #endif 170 - #define mb() dmb() 171 - #define rmb() mb() 172 - #define wmb() mb() 173 - #define read_barrier_depends() do { } while(0) 174 - #define set_mb(var, value) do { var = value; mb(); } while (0) 170 + 171 + #define mb() barrier() 172 + #define rmb() barrier() 173 + #define wmb() barrier() 174 + #define read_barrier_depends() do { } while(0) 175 + 176 + #ifdef CONFIG_SMP 177 + #define smp_mb() dmb() 178 + #define smp_rmb() dmb() 179 + #define smp_wmb() dmb() 180 + #define smp_read_barrier_depends() read_barrier_depends() 181 + #else 182 + #define smp_mb() barrier() 183 + #define smp_rmb() barrier() 184 + #define smp_wmb() barrier() 185 + #define smp_read_barrier_depends() read_barrier_depends() 186 + #endif /* CONFIG_SMP */ 187 + 188 + #define set_mb(var, value) do { var = value; smp_mb(); } while (0) 175 189 #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); 176 190 177 191 extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ ··· 256 242 static inline void sched_cacheflush(void) 257 243 { 258 244 } 259 - 260 - #ifdef CONFIG_SMP 261 - 262 - #define smp_mb() mb() 263 - #define smp_rmb() rmb() 264 - #define smp_wmb() wmb() 265 - #define smp_read_barrier_depends() read_barrier_depends() 266 - 267 - #else 268 - 269 - #define smp_mb() barrier() 270 - #define smp_rmb() barrier() 271 - #define smp_wmb() barrier() 272 - #define smp_read_barrier_depends() do { } while(0) 273 - 274 - #endif /* CONFIG_SMP */ 275 245 276 246 #if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) 277 247 /*