Commit d0c1c621 authored by Philippe Gerum's avatar Philippe Gerum
Browse files

irq_pipeline: genirq: Mark inband stalled also on exceptions



Make sure that inband is marked stalled when entering from user mode,
taking an exception.

This affects x86 which is currently the only arch using generic
irqentry_enter_from_user_mode on exceptions. It fixes this lockdep
warning:

DEBUG_LOCKS_WARN_ON(!lockdep_stage_disabled())
WARNING: CPU: 2 PID: 1477 at ../kernel/locking/lockdep.c:4129 lockdep_hardirqs_on_prepare+0x160/0x1a0
Signed-off-by: default avatarPhilippe Gerum <rpm@xenomai.org>
Tested-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
parent 19ca214a
......@@ -388,6 +388,8 @@ __visible noinstr void syscall_exit_to_user_mode(struct pt_regs *regs)
noinstr void irqentry_enter_from_user_mode(struct pt_regs *regs)
{
WARN_ON_ONCE(irq_pipeline_debug() && irqs_disabled());
stall_inband_nocheck();
__enter_from_user_mode(regs);
}
......@@ -418,8 +420,6 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
if (user_mode(regs)) {
#ifdef CONFIG_IRQ_PIPELINE
WARN_ON_ONCE(irq_pipeline_debug() && irqs_disabled());
stall_inband_nocheck();
ret.stage_info = IRQENTRY_INBAND_UNSTALLED;
#endif
irqentry_enter_from_user_mode(regs);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment