]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Drivers: hv: vmbus: Simplify allocation of vmbus_evt
authorMichael Kelley <mhklinux@outlook.com>
Wed, 18 Feb 2026 17:01:21 +0000 (09:01 -0800)
committerWei Liu <wei.liu@kernel.org>
Wed, 18 Feb 2026 23:40:45 +0000 (23:40 +0000)
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>
drivers/hv/vmbus_drv.c

index 1d5cba142828e7408709b743de8afc723077e4e8..771792da6a4fc014959d4865b93311ed466054ba 100644 (file)
@@ -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;