Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Jork Loeser and committed by
Wei Liu
f7ce370b 3c42b334

+6 -3
+6 -2
arch/x86/kernel/cpu/mshyperv.c
··· 235 235 #ifdef CONFIG_KEXEC_CORE 236 236 static void hv_machine_shutdown(void) 237 237 { 238 - if (kexec_in_progress && hv_kexec_handler) 239 - hv_kexec_handler(); 238 + if (kexec_in_progress) { 239 + hv_stimer_global_cleanup(); 240 + 241 + if (hv_kexec_handler) 242 + hv_kexec_handler(); 243 + } 240 244 241 245 /* 242 246 * Call hv_cpu_die() on all the CPUs, otherwise later the hypervisor
-1
drivers/hv/vmbus_drv.c
··· 2883 2883 2884 2884 static void hv_kexec_handler(void) 2885 2885 { 2886 - hv_stimer_global_cleanup(); 2887 2886 vmbus_initiate_unload(false); 2888 2887 /* Make sure conn_state is set as hv_synic_cleanup checks for it */ 2889 2888 mb();