x86/hyperv: move stimer cleanup to hv_machine_shutdown()
Move hv_stimer_global_cleanup() from vmbus's hv_kexec_handler() to hv_machine_shutdown() in the platform code. This ensures stimer cleanup happens before the vmbus unload, which is required for root partition kexec to work correctly. Co-developed-by: Anirudh Rayabharam <anrayabh@linux.microsoft.com> Signed-off-by: Anirudh Rayabharam <anrayabh@linux.microsoft.com> Signed-off-by: Jork Loeser <jloeser@linux.microsoft.com> Reviewed-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> Signed-off-by: Wei Liu <wei.liu@kernel.org>master
parent
3c42b33433
commit
f7ce370b52
|
|
@ -235,8 +235,12 @@ void hv_remove_crash_handler(void)
|
|||
#ifdef CONFIG_KEXEC_CORE
|
||||
static void hv_machine_shutdown(void)
|
||||
{
|
||||
if (kexec_in_progress && hv_kexec_handler)
|
||||
hv_kexec_handler();
|
||||
if (kexec_in_progress) {
|
||||
hv_stimer_global_cleanup();
|
||||
|
||||
if (hv_kexec_handler)
|
||||
hv_kexec_handler();
|
||||
}
|
||||
|
||||
/*
|
||||
* Call hv_cpu_die() on all the CPUs, otherwise later the hypervisor
|
||||
|
|
|
|||
|
|
@ -2883,7 +2883,6 @@ static struct platform_driver vmbus_platform_driver = {
|
|||
|
||||
static void hv_kexec_handler(void)
|
||||
{
|
||||
hv_stimer_global_cleanup();
|
||||
vmbus_initiate_unload(false);
|
||||
/* Make sure conn_state is set as hv_synic_cleanup checks for it */
|
||||
mb();
|
||||
|
|
|
|||
Loading…
Reference in New Issue