Commit ae715818 authored by Martin Schiller's avatar Martin Schiller Committed by Borislav Petkov (AMD)
Browse files

x86/reboot: Execute the kernel restart handler upon machine restart



SoC devices like the Intel / MaxLinear Lightning Mountain must be reset by the
Reset Control Unit (RCU) instead of using  "normal" x86 mechanisms like ACPI,
BIOS, KBD, etc.

Therefore, the RCU driver (reset-intel-gw) registers a restart handler which
triggers the global reset signal.

Unfortunately, this is of no use as long as the restart chain is not processed
during reboot on x86 systems.

That's why do_kernel_restart() must be called when a reboot is performed. This
has long been common practice for other architectures.

  [ bp: Massage commit message. ]

Signed-off-by: default avatarMartin Schiller <ms@dev.tdt.de>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Link: https://patch.msgid.link/20260225-x86_do_kernel_restart-v2-1-81396cf3d44c@dev.tdt.de
parent 9a4af5a0
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -773,12 +773,15 @@ static void __machine_emergency_restart(int emergency)
	machine_ops.emergency_restart();
}

static void native_machine_restart(char *__unused)
static void native_machine_restart(char *command)
{
	pr_notice("machine restart\n");

	if (!reboot_force)
		machine_shutdown();

	do_kernel_restart(command);

	__machine_emergency_restart(0);
}