diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-07-12 10:39:47 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-07-12 10:39:47 -0400 |
commit | 63f4f9e1281ea9b9a2304bd13d657ba9d401c9a7 (patch) | |
tree | 07a057d8e434fbbd8d21cff9c0562628eb27cd85 /include/asm-s390/irqflags.h | |
parent | f4a10b211ddb71d6b4e423fd529468691dec5cca (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>
Diffstat (limited to 'include/asm-s390/irqflags.h')
-rw-r--r-- | include/asm-s390/irqflags.h | 18 |
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) ) | 29 | do { \ |
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) \ | ||
35 | do { \ | ||
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 | ||