diff options
| author | Michael Kelley <mhklinux@outlook.com> | 2026-02-18 09:01:21 -0800 |
|---|---|---|
| committer | Wei Liu <wei.liu@kernel.org> | 2026-02-18 23:40:45 +0000 |
| commit | 30d25a8fc04cf1806c09362616e861d6fd339f98 (patch) | |
| tree | c0d7456685072b12c6eecc516713ba940593a44c /drivers/hv | |
| parent | 36d6cbb62133fc6eea28f380409e0fb190f3dfbe (diff) | |
Drivers: hv: vmbus: Simplify allocation of vmbus_evt
The per-cpu variable vmbus_evt is currently dynamically allocated. It's
only 8 bytes, so just allocate it statically to simplify and save a few
lines of code.
Signed-off-by: Michael Kelley <mhklinux@outlook.com>
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'drivers/hv')
| -rw-r--r-- | drivers/hv/vmbus_drv.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 1d5cba142828..771792da6a4f 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -52,7 +52,7 @@ static struct device *vmbus_root_device; static int hyperv_cpuhp_online; -static long __percpu *vmbus_evt; +static DEFINE_PER_CPU(long, vmbus_evt); /* Values parsed from ACPI DSDT */ int vmbus_irq; @@ -1520,13 +1520,11 @@ static int vmbus_bus_init(void) if (vmbus_irq == -1) { hv_setup_vmbus_handler(vmbus_isr); } else { - vmbus_evt = alloc_percpu(long); ret = request_percpu_irq(vmbus_irq, vmbus_percpu_isr, - "Hyper-V VMbus", vmbus_evt); + "Hyper-V VMbus", &vmbus_evt); if (ret) { pr_err("Can't request Hyper-V VMbus IRQ %d, Err %d", vmbus_irq, ret); - free_percpu(vmbus_evt); goto err_setup; } } @@ -1555,12 +1553,10 @@ static int vmbus_bus_init(void) return 0; err_connect: - if (vmbus_irq == -1) { + if (vmbus_irq == -1) hv_remove_vmbus_handler(); - } else { - free_percpu_irq(vmbus_irq, vmbus_evt); - free_percpu(vmbus_evt); - } + else + free_percpu_irq(vmbus_irq, &vmbus_evt); err_setup: if (IS_ENABLED(CONFIG_PREEMPT_RT) && vmbus_irq_initialized) { smpboot_unregister_percpu_thread(&vmbus_irq_threads); @@ -3030,12 +3026,10 @@ static void __exit vmbus_exit(void) vmbus_connection.conn_state = DISCONNECTED; hv_stimer_global_cleanup(); vmbus_disconnect(); - if (vmbus_irq == -1) { + if (vmbus_irq == -1) hv_remove_vmbus_handler(); - } else { - free_percpu_irq(vmbus_irq, vmbus_evt); - free_percpu(vmbus_evt); - } + else + free_percpu_irq(vmbus_irq, &vmbus_evt); if (IS_ENABLED(CONFIG_PREEMPT_RT) && vmbus_irq_initialized) { smpboot_unregister_percpu_thread(&vmbus_irq_threads); vmbus_irq_initialized = false; |
