Re: [PATCH v6] arm64: sdei: abort running SDEI handlers during crash

From: D Scott Phillips
Date: Thu Jul 06 2023 - 18:00:41 EST


D Scott Phillips <scott@xxxxxxxxxxxxxxxxxxxxxx> writes:

> Interrupts are blocked in SDEI context, per the SDEI spec: "The client
> interrupts cannot preempt the event handler." If we crashed in the SDEI
> handler-running context (as with ACPI's AGDI) then we need to clean up the
> SDEI state before proceeding to the crash kernel so that the crash kernel
> can have working interrupts.
>
> Track the active SDEI handler per-cpu so that we can COMPLETE_AND_RESUME
> the handler, discarding the interrupted context.
>
> Fixes: f5df26961853 ("arm64: kernel: Add arch-specific SDEI entry code and CPU masking")
> Signed-off-by: D Scott Phillips <scott@xxxxxxxxxxxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> Changes since v5:
> - move sdei_handler_abort() to drivers/firmware/arm_sdei.c so that header
> changes don't break x86.
> v5 Link: https://lore.kernel.org/linux-arm-kernel/20230626074748.2785-1-scott@xxxxxxxxxxxxxxxxxxxxxx/

Hi James, sorry for the thrash on this, mea culpa. Would you mind taking
another look at the patch with the code moved around to fix my build
breakage?