aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-10-17 09:21:37 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-10-17 09:21:37 +0000
commit0c66a95b41788ae5df61ef70670a86199c8ecfe7 (patch)
tree90a5294e5bf94de38a0f19fe3b998442f9ce819f
parent51e9c38658f243ba095cf23bfbb396789a25e285 (diff)
downloadxen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.tar.gz
xen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.tar.bz2
xen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.zip
bitkeeper revision 1.527 (3f8fb4a16LPOSuutnwr8zgDB3Ws1Kw)
system.h: Slightly better restore_flags in xenolinux.
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/system.h24
1 files changed, 9 insertions, 15 deletions
diff --git a/xenolinux-2.4.22-sparse/include/asm-xeno/system.h b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h
index 12bfe68c14..3b59252ca3 100644
--- a/xenolinux-2.4.22-sparse/include/asm-xeno/system.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h
@@ -320,21 +320,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
#define set_wmb(var, value) do { var = value; wmb(); } while (0)
-#define __save_flags(x) \
-do { \
- (x) = test_bit(EVENTS_MASTER_ENABLE_BIT, \
- &HYPERVISOR_shared_info->events_mask); \
- barrier(); \
-} while (0)
-
-#define __restore_flags(x) \
-do { \
- shared_info_t *_shared = HYPERVISOR_shared_info; \
- if (x) set_bit(EVENTS_MASTER_ENABLE_BIT, &_shared->events_mask); \
- barrier(); \
- if ( unlikely(_shared->events) && (x) ) do_hypervisor_callback(NULL); \
-} while (0)
-
#define __cli() \
do { \
clear_bit(EVENTS_MASTER_ENABLE_BIT, &HYPERVISOR_shared_info->events_mask);\
@@ -349,6 +334,15 @@ do { \
if ( unlikely(_shared->events) ) do_hypervisor_callback(NULL); \
} while (0)
+#define __save_flags(x) \
+do { \
+ (x) = test_bit(EVENTS_MASTER_ENABLE_BIT, \
+ &HYPERVISOR_shared_info->events_mask); \
+ barrier(); \
+} while (0)
+
+#define __restore_flags(x) do { if (x) __sti(); } while (0)
+
#define safe_halt() ((void)0)
#define __save_and_cli(x) do { __save_flags(x); __cli(); } while(0);