Thread (12 messages) 12 messages, 3 authors, 2025-11-17

Re: [PATCH 2/2] arm64: efi: Pass reboot cmd parameter to efi_reboot()

From: Ard Biesheuvel <ardb@kernel.org>
Date: 2025-11-14 09:26:16
Also in: linux-arm-msm, linux-efi, lkml

On Fri, 14 Nov 2025 at 09:51, Sumit Garg [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Sumit Garg <redacted>

EFI ResetSystem runtime service allows for platform specific reset type
allowing the OS to pass reset data for the UEFI implementation to take
corresponding action. So lets pass the reboot cmd parameter for the EFI
driver to determine whether it's a platform specific reset requested or
not.

Signed-off-by: Sumit Garg <redacted>
---
 arch/arm64/kernel/process.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index fba7ca102a8c..51784986c568 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -136,7 +136,7 @@ void machine_restart(char *cmd)
         * ResetSystem().
         */
        if (efi_enabled(EFI_RUNTIME_SERVICES))
-               efi_reboot(reboot_mode, NULL);
+               efi_reboot(reboot_mode, cmd);
I agree with the general principle. However, there are already
existing callers of kernel_restart() that would end up passing a
random string to efi_reboot(), resulting in platform specific reset
with undefined result.

E.g.,

$ git grep kernel_restart\(\"
drivers/md/dm-verity-target.c:          kernel_restart("dm-verity
device corrupted");
drivers/md/dm-verity-target.c:  kernel_restart("dm-verity device has
I/O error");
drivers/memory/emif.c:                  kernel_restart("SDRAM
Over-temp Emergency restart");

        /* Now call the architecture specific reboot code. */
        do_kernel_restart(cmd);
--
2.48.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help