Re: [PATCH v5 03/22] reboot: call liveupdate_reboot() before kexec
From: Mike Rapoport <rppt@kernel.org>
Date: 2025-11-14 11:31:20
Also in:
linux-doc, linux-fsdevel, linux-mm, lkml
On Fri, Nov 07, 2025 at 04:03:01PM -0500, Pasha Tatashin wrote:
quoted hunk ↗ jump to hunk
Modify the reboot() syscall handler in kernel/reboot.c to call liveupdate_reboot() when processing the LINUX_REBOOT_CMD_KEXEC command. This ensures that the Live Update Orchestrator is notified just before the kernel executes the kexec jump. The liveupdate_reboot() function triggers the final freeze event, allowing participating FDs perform last-minute check or state saving within the blackout window. The call is placed immediately before kernel_kexec() to ensure LUO finalization happens at the latest possible moment before the kernel transition. If liveupdate_reboot() returns an error (indicating a failure during LUO finalization), the kexec operation is aborted to prevent proceeding with an inconsistent state. Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com> --- kernel/reboot.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/kernel/reboot.c b/kernel/reboot.c index ec087827c85c..bdeb04a773db 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c@@ -13,6 +13,7 @@ #include <linux/kexec.h> #include <linux/kmod.h> #include <linux/kmsg_dump.h> +#include <linux/liveupdate.h> #include <linux/reboot.h> #include <linux/suspend.h> #include <linux/syscalls.h>@@ -797,6 +798,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, #ifdef CONFIG_KEXEC_CORE case LINUX_REBOOT_CMD_KEXEC: + ret = liveupdate_reboot(); + if (ret) + break;
As we discussed elsewhere, let's move the call to liveupdate_reboot() to kernel_kexec().
ret = kernel_kexec(); break; #endif -- 2.51.2.1041.gc1ab5b90ca-goog
-- Sincerely yours, Mike.