[PATCH v3 0/2] efi: Follow-up fixes for EFI runtime stack

Lee Jones lee at kernel.org
Mon Jan 9 02:38:25 PST 2023


On Fri, 06 Jan 2023, Ard Biesheuvel wrote:

> Commit ff7a167961d1b ("arm64: efi: Execute runtime services from a
> dedicated stack") introduced a dedicated stack for EFI runtime services,
> in an attempt to make the execution of EFI runtime services more robust,
> given that they execute at the same privilege level as the kernel.
> 
> However, this stack needs to be declared to the stacktrace machinery,
> which is careful not to walk the stack when it leads into memory regions
> that are not known to be allocated for stack use.
> 
> Also, given that the ACPI code may invoke the low-level EFI runtime call
> wrapper without using the dedicated kernel thread and workqueue, we
> should take this into account when trying to gracefully handle
> synchronous exceptions.
> 
> Changes since v2:
> - clear efi_rt_stack_top[-1] from asm code, and use READ_ONCE() to read
>   its value when not holding the spinlock, to ensure that all accesses
>   are safe under concurrency;
> - add Mark's ack to patch #2
> 
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Lee Jones <lee at kernel.org>
> 
> Ard Biesheuvel (2):
>   arm64: efi: Avoid workqueue to check whether EFI runtime is live
>   arm64: efi: Account for the EFI runtime stack in stack unwinder

Should either / both of these be routed to Stable?

If so, we should probably Cc: them.

>  arch/arm64/include/asm/efi.h        |  9 +++++++++
>  arch/arm64/include/asm/stacktrace.h | 15 +++++++++++++++
>  arch/arm64/kernel/efi-rt-wrapper.S  |  6 ++++++
>  arch/arm64/kernel/efi.c             |  3 ++-
>  arch/arm64/kernel/stacktrace.c      | 12 ++++++++++++
>  5 files changed, 44 insertions(+), 1 deletion(-)
> 
> -- 
> 2.39.0
> 

-- 
Lee Jones [李琼斯]



More information about the linux-arm-kernel mailing list