ACPI PRM uses the EFI runtime services infrastructure, but currently, it issues the firmware calls directly, instead of going through the wrappers and handing off the call to the EFI workqueue. Given that ACPI PRM is used for vendor code rather than core EFI runtime services, it would be nice if these calls get sandboxed in the same way as EFI runtime services calls are. This ensures that any faults occurring in the firmware are handled gracefully and don't bring down the kernel. Another reason for using the work queue is the fact that on some platforms, the EFI memory regions are remapping into the lower address space, and this means that sampling the instruction pointer in a perf interrupt may cause confusion about whether the task is running in user space or in the firmware. So let's move the ACPI PRM calls into the EFI runtime wrapper infrastructure. Before that, let's clean it up a bit. Ard Biesheuvel (4): efi/runtime-wrappers: Use type safe encapsulation of call arguments efi/runtime-wrapper: Move workqueue manipulation out of line efi/runtime-wrappers: Remove duplicated macro for service returning void acpi/prmt: Use EFI runtime sandbox to invoke PRM handlers drivers/acpi/prmt.c | 8 +- drivers/firmware/efi/runtime-wrappers.c | 201 +++++++++++--------- include/linux/efi.h | 110 ++++++++--- 3 files changed, 198 insertions(+), 121 deletions(-) -- 2.39.2