Avoid unneccessary use of xchg() in set_mb().
Signed-off-by: Greg Ungerer <[email protected]>
---
diff -Naurp linux-2.6.25-rc1/include/asm-m68knommu/system.h linux-2.6.x/include/asm-m68knommu/system.h
--- linux-2.6.25-rc1/include/asm-m68knommu/system.h 2008-02-11 14:50:23.000000000 +1000
+++ linux-2.6.x/include/asm-m68knommu/system.h 2008-02-12 13:58:55.000000000 +1000
@@ -104,7 +104,7 @@ asmlinkage void resume(void);
#define mb() asm volatile ("" : : :"memory")
#define rmb() asm volatile ("" : : :"memory")
#define wmb() asm volatile ("" : : :"memory")
-#define set_mb(var, value) do { xchg(&var, value); } while (0)
+#define set_mb(var, value) ({ (var) = (value); wmb(); })
#ifdef CONFIG_SMP
#define smp_mb() mb()