Index: kernel/arch/ia64/include/barrier.h
===================================================================
--- kernel/arch/ia64/include/barrier.h	(revision e32e092d6f8bed442ecc81b18af9ef323bc4e650)
+++ kernel/arch/ia64/include/barrier.h	(revision e25eca8008c4df6f190fbd28a399c5e01406f863)
@@ -46,6 +46,20 @@
 #define write_barrier()		memory_barrier()
 
-#define srlz_i()		asm volatile (";; srlz.i ;;\n" ::: "memory")
-#define srlz_d()		asm volatile (";; srlz.d\n" ::: "memory")
+#define srlz_i()		\
+	asm volatile (";; srlz.i ;;\n" ::: "memory")
+#define srlz_d()		\
+	asm volatile (";; srlz.d\n" ::: "memory")
+
+#define fc_i(a)			\
+	asm volatile ("fc.i %0\n" : "r" ((a)) :: "memory")  
+#define sync_i()		\
+	asm volatile (";; sync.i\n" ::: "memory")
+
+#define smc_coherence(a)	\
+{				\
+	fc_i((a));		\
+	sync_i();		\
+	srlz_i();		\
+}
 
 #endif
