Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -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);	\
})