Messages in this thread Patch in this message | | | From | Benjamin Bouvier <> | Subject | [PATCH] x86/reboot: Enable restart_handler mechanism | Date | Fri, 17 Jan 2020 15:45:35 +0200 |
| |
Drivers may want to register restart_handlers for case where an external reset is needed to reset a complete system and not only the processor. This case is currently missing in x86 architecture. So include call to do_kernel_restart() to use handlers registered through register_restart_handler() API when the processor restarts.
do_kernel_restart() cannot be called in machine_restart() as required by documentation as final step, because it will never be reached (restart having already been carried out). So call is done inside native_machine_restart(), and only here to not let drivers managed reset in hypervisor case where function native_machine_restart() is overridden.
Co-developed-by: Patrick Lelu <patrick.lelu@nokia.com> Signed-off-by: Patrick Lelu <patrick.lelu@nokia.com> Signed-off-by: Benjamin Bouvier <benjamin.bouvier@nokia.com> --- arch/x86/kernel/reboot.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 0cc7c0b106bb..53c3d5a3f89d 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c @@ -718,12 +718,13 @@ static void __machine_emergency_restart(int emergency) machine_ops.emergency_restart(); } -static void native_machine_restart(char *__unused) +static void native_machine_restart(char *cmd) { pr_notice("machine restart\n"); if (!reboot_force) machine_shutdown(); + do_kernel_restart(cmd); __machine_emergency_restart(0); } -- 2.21.0
| |