Re: [PATCH] exit: Detect and fix irq disabled state in oops

From: Peter Zijlstra
Date: Fri Jan 20 2023 - 10:21:25 EST


On Fri, Jan 20, 2023 at 11:18:20AM +1000, Nicholas Piggin wrote:
> If a task oopses with irqs disabled, this can cause various cascading
> problems in the oops path such as sleep-from-invalid warnings, and
> potentially worse.
>
> Since commit 0258b5fd7c712 ("coredump: Limit coredumps to a single
> thread group"), the unconditional irq enable in coredump_task_exit()
> will "fix" the irq state to be enabled early in do_exit(), so currently
> this may not be triggerable, but that is coincidental and fragile.
>
> Detect and fix the irqs_disabled() condition in the oops path before
> calling do_exit(), similarly to the way in_atomic() is handled.
>
> Link: https://lore.kernel.org/lkml/20221004094401.708299-1-npiggin@xxxxxxxxx/
> Reported-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
> Signed-off-by: Nicholas Piggin <npiggin@xxxxxxxxx>
> ---
> Hi Peter,
>
> Would you consider taking this through the sched tree?

Yep, can do, let me go queue it.