]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
[IA64] barrier in xen_rsm_i
authorAlex Williamson <alex.williamson@hp.com>
Mon, 17 Dec 2007 16:06:55 +0000 (09:06 -0700)
committerAlex Williamson <alex.williamson@hp.com>
Mon, 17 Dec 2007 16:06:55 +0000 (09:06 -0700)
Force rsm to be visible, preventing possible looping with
virtual psr.i masked.

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
include/asm-ia64/xen/privop.h

index 80041ba60c32e3c0c98f28eb9be1d2c1ce502941..d654bbd851b44cf91e8ec39bf9b89f3ea30d0523 100644 (file)
@@ -229,7 +229,11 @@ extern void xen_set_eflag(unsigned long);  /* see xen_ia64_setreg */
 
 /* turning off interrupts can be paravirtualized simply by writing
  * to a memory-mapped virtual psr.i bit (implemented as a 16-bit bool) */
-#define xen_rsm_i()    xen_set_virtual_psr_i(0)
+#define xen_rsm_i()                                                    \
+{                                                                      \
+       xen_set_virtual_psr_i(0);                                       \
+       barrier();                                                      \
+}
 
 /* turning on interrupts is a bit more complicated.. write to the
  * memory-mapped virtual psr.i bit first (to avoid race condition),