From 40c9c62c85a8b7e58350f2d00649f9e0060150b7 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Fri, 26 May 2023 08:33:02 +0200 Subject: parisc: Check if IRQs are disabled when calling arch_local_irq_restore() A trivial check to check if IRQs are on although they should be off. Signed-off-by: Helge Deller --- arch/parisc/include/asm/irqflags.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'arch/parisc/include/asm/irqflags.h') diff --git a/arch/parisc/include/asm/irqflags.h b/arch/parisc/include/asm/irqflags.h index 38a19c0bac3a..00fd87724588 100644 --- a/arch/parisc/include/asm/irqflags.h +++ b/arch/parisc/include/asm/irqflags.h @@ -31,6 +31,11 @@ static inline unsigned long arch_local_irq_save(void) static inline void arch_local_irq_restore(unsigned long flags) { + /* warn if IRQs are on although they should be off */ + if (IS_ENABLED(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK)) + if (arch_local_save_flags() & PSW_I) + asm volatile("break 6,6\n"); /* SPINLOCK_BREAK_INSN */ + asm volatile("mtsm %0" : : "r" (flags) : "memory"); } -- cgit v1.2.3