VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / include / asm-ia64 / gcc_intrin.h
index d3d94e8..7d2b1e4 100644 (file)
@@ -489,10 +489,16 @@ register unsigned long ia64_r13 asm ("r13") __attribute_used__;
 #define ia64_ptce(addr)        asm volatile ("ptc.e %0" :: "r"(addr))
 
 #define ia64_ptcga(addr, size)                                                 \
-       asm volatile ("ptc.ga %0,%1" :: "r"(addr), "r"(size) : "memory")
+do {                                                                           \
+       asm volatile ("ptc.ga %0,%1" :: "r"(addr), "r"(size) : "memory");       \
+       ia64_dv_serialize_data();                                               \
+} while (0)
 
-#define ia64_ptcl(addr, size)                                          \
-       asm volatile ("ptc.l %0,%1" :: "r"(addr), "r"(size) : "memory")
+#define ia64_ptcl(addr, size)                                                  \
+do {                                                                           \
+       asm volatile ("ptc.l %0,%1" :: "r"(addr), "r"(size) : "memory");        \
+       ia64_dv_serialize_data();                                               \
+} while (0)
 
 #define ia64_ptri(addr, size)                                          \
        asm volatile ("ptr.i %0,%1" :: "r"(addr), "r"(size) : "memory")
@@ -581,7 +587,7 @@ register unsigned long ia64_r13 asm ("r13") __attribute_used__;
 
 #define ia64_intrin_local_irq_restore(x)                       \
 do {                                                           \
-       asm volatile ("     cmp.ne p6,p7=%0,r0;;"               \
+       asm volatile (";;   cmp.ne p6,p7=%0,r0;;"               \
                      "(p6) ssm psr.i;"                         \
                      "(p7) rsm psr.i;;"                        \
                      "(p6) srlz.d"                             \