mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
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: 2647c96649 ("Drivers: hv: Support establishing the confidential VMBus connection")
Signed-off-by: Jork Loeser <jloeser@linux.microsoft.com>
Reviewed-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com>
Reviewed-by: Anirudh Rayabharam (Microsoft) <anirudh@anirudhrb.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
This commit is contained in:
parent
cfc42685e5
commit
3c42b33433
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user