summaryrefslogtreecommitdiff
path: root/drivers/hv
diff options
context:
space:
mode:
authorMichael Kelley <mhklinux@outlook.com>2026-02-18 09:01:21 -0800
committerWei Liu <wei.liu@kernel.org>2026-02-18 23:40:45 +0000
commit30d25a8fc04cf1806c09362616e861d6fd339f98 (patch)
treec0d7456685072b12c6eecc516713ba940593a44c /drivers/hv
parent36d6cbb62133fc6eea28f380409e0fb190f3dfbe (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.c22
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;