sched/core: Allow try_invoke_on_locked_down_task() with irqs disabled
authorPeter Zijlstra <peterz@infradead.org>
Sat, 29 Aug 2020 17:22:24 +0000 (10:22 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 4 Jan 2021 23:49:52 +0000 (15:49 -0800)
commit1b7af295541d75535374325fd617944534853919
treecbd23a61998a413ca5228996512b184c3fd131a1
parent1b04fa9900263b4e217ca2509fd778b32c2b4eb2
sched/core: Allow try_invoke_on_locked_down_task() with irqs disabled

The try_invoke_on_locked_down_task() function currently requires
that interrupts be enabled, but it is called with interrupts
disabled from rcu_print_task_stall(), resulting in an "IRQs not
enabled as expected" diagnostic.  This commit therefore updates
try_invoke_on_locked_down_task() to use raw_spin_lock_irqsave() instead
of raw_spin_lock_irq(), thus allowing use from either context.

Link: https://lore.kernel.org/lkml/000000000000903d5805ab908fc4@google.com/
Link: https://lore.kernel.org/lkml/20200928075729.GC2611@hirez.programming.kicks-ass.net/
Reported-by: syzbot+cb3b69ae80afd6535b0e@syzkaller.appspotmail.com
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/sched/core.c