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

Commit 4a3b8d0b authored by Scott Wood's avatar Scott Wood Committed by Benjamin Herrenschmidt
Browse files

powerpc: hard_irq_disable(): Call trace_hardirqs_off after disabling



lockdep.c has this:
        /*
         * So we're supposed to get called after you mask local IRQs,
         * but for some reason the hardware doesn't quite think you did
         * a proper job.
         */
	if (DEBUG_LOCKS_WARN_ON(!irqs_disabled()))
		return;

Since irqs_disabled() is based on soft_enabled(), that (not just the
hard EE bit) needs to be 0 before we call trace_hardirqs_off.

Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
parent 73ed148a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -96,11 +96,12 @@ static inline bool arch_irqs_disabled(void)
#endif

#define hard_irq_disable()	do {			\
	u8 _was_enabled = get_paca()->soft_enabled;	\
	__hard_irq_disable();				\
	if (local_paca->soft_enabled)			\
		trace_hardirqs_off();			\
	get_paca()->soft_enabled = 0;			\
	get_paca()->irq_happened |= PACA_IRQ_HARD_DIS;	\
	if (_was_enabled)				\
		trace_hardirqs_off();			\
} while(0)

static inline bool lazy_irq_pending(void)