]> git.neil.brown.name Git - history.git/commitdiff
Make the x86 flags save/restore code check the type of the
authorLinus Torvalds <torvalds@home.transmeta.com>
Mon, 14 Apr 2003 09:08:01 +0000 (02:08 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Mon, 14 Apr 2003 09:08:01 +0000 (02:08 -0700)
macro argument, so that portability issues will be found in
a timely manner.

include/asm-i386/system.h

index fbc90dd3bbed312e3a12094ba959a91ce5d6a52f..2b57b01de589b4762aa1ccaea1afeefac264a571 100644 (file)
@@ -378,8 +378,8 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
 #define set_wmb(var, value) do { var = value; wmb(); } while (0)
 
 /* interrupt control.. */
-#define local_save_flags(x)    __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */)
-#define local_irq_restore(x)   __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory", "cc")
+#define local_save_flags(x)    do { typecheck(unsigned long,x); __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */); } while (0)
+#define local_irq_restore(x)   do { typecheck(unsigned long,x); __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory", "cc"); } while (0)
 #define local_irq_disable()    __asm__ __volatile__("cli": : :"memory")
 #define local_irq_enable()     __asm__ __volatile__("sti": : :"memory")
 /* used in the idle loop; sti takes one instruction cycle to complete */