Commit 63f4f9e1 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky

[S390] raw_local_save_flags/raw_local_irq_restore type check

Make sure that raw_local_save_flags and raw_local_irq_restore always get an
unsigned long parameter. raw_irqs_disabled should call raw_local_save_flags
instead of local_save_flags.
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent f4a10b21
......@@ -26,15 +26,21 @@
})
#define raw_local_save_flags(x) \
__asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) )
do { \
typecheck(unsigned long, x); \
__asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ); \
} while (0)
#define raw_local_irq_restore(x) \
__asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory")
do { \
typecheck(unsigned long, x); \
__asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory"); \
} while (0)
#define raw_irqs_disabled() \
({ \
unsigned long flags; \
local_save_flags(flags); \
raw_local_save_flags(flags); \
!((flags >> __FLAG_SHIFT) & 3); \
})
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment