From: Jork Loeser Date: Wed, 8 Apr 2026 01:36:38 +0000 (-0700) Subject: Drivers: hv: vmbus: fix hyperv_cpuhp_online variable shadowing X-Git-Tag: v7.1-rc1~51^2~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=3c42b33433796b73ddecd8f60bda419b1648d997;p=thirdparty%2Fkernel%2Flinux.git Drivers: hv: vmbus: fix hyperv_cpuhp_online variable shadowing vmbus_alloc_synic_and_connect() declares a local 'int hyperv_cpuhp_online' that shadows the file-scope global of the same name. The cpuhp state returned by cpuhp_setup_state() is stored in the local, leaving the global at 0 (CPUHP_OFFLINE). When hv_kexec_handler() or hv_machine_shutdown() later call cpuhp_remove_state(hyperv_cpuhp_online) they pass 0, which hits the BUG_ON in __cpuhp_remove_state_cpuslocked(). Remove the local declaration so the cpuhp state is stored in the file-scope global where hv_kexec_handler() and hv_machine_shutdown() expect it. Fixes: 2647c96649ba ("Drivers: hv: Support establishing the confidential VMBus connection") Signed-off-by: Jork Loeser Reviewed-by: Stanislav Kinsburskii Reviewed-by: Anirudh Rayabharam (Microsoft) Signed-off-by: Wei Liu --- diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 24fa0b2443c3..463eb818549e 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -1423,7 +1423,6 @@ static int vmbus_alloc_synic_and_connect(void) { int ret, cpu; struct work_struct __percpu *works; - int hyperv_cpuhp_online; ret = hv_synic_alloc(); if (ret < 0)