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@xxxxxxx> > Cc: Lee Jones <lee@xxxxxxxxxx> > > 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 [李琼斯]