aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-07-12 10:39:47 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-07-12 10:39:47 -0400
commit63f4f9e1281ea9b9a2304bd13d657ba9d401c9a7 (patch)
tree07a057d8e434fbbd8d21cff9c0562628eb27cd85
parentf4a10b211ddb71d6b4e423fd529468691dec5cca (diff)
[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: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--include/asm-s390/irqflags.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/include/asm-s390/irqflags.h b/include/asm-s390/irqflags.h
index 65f4db627e7a..3b566a5b3cc7 100644
--- a/include/asm-s390/irqflags.h
+++ b/include/asm-s390/irqflags.h
@@ -25,16 +25,22 @@
25 __flags; \ 25 __flags; \
26 }) 26 })
27 27
28#define raw_local_save_flags(x) \ 28#define raw_local_save_flags(x) \
29 __asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ) 29do { \
30 30 typecheck(unsigned long, x); \
31#define raw_local_irq_restore(x) \ 31 __asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ); \
32 __asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory") 32} while (0)
33
34#define raw_local_irq_restore(x) \
35do { \
36 typecheck(unsigned long, x); \
37 __asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory"); \
38} while (0)
33 39
34#define raw_irqs_disabled() \ 40#define raw_irqs_disabled() \
35({ \ 41({ \
36 unsigned long flags; \ 42 unsigned long flags; \
37 local_save_flags(flags); \ 43 raw_local_save_flags(flags); \
38 !((flags >> __FLAG_SHIFT) & 3); \ 44 !((flags >> __FLAG_SHIFT) & 3); \
39}) 45})
40 46