]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Drivers: hv: vmbus: Remove vmbus_irq_initialized
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tue, 21 Jul 2026 15:32:16 +0000 (17:32 +0200)
committerWei Liu <wei.liu@kernel.org>
Wed, 22 Jul 2026 23:51:19 +0000 (23:51 +0000)
vmbus_irq_initialized is only true if the registration of the per-CPU
threads succeeded. If it failed, the whole registration aborts and the
vmbus_exit() path is never called.

Remove vmbus_irq_initialized.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/vmbus_drv.c

index 7d095c0add25d293a565b3c4f1d9956b875b0140..6824bd7cb3c4fde5d980fb9fe3a6120cffe45a3c 100644 (file)
@@ -1369,8 +1369,6 @@ static void run_vmbus_irqd(unsigned int cpu)
        __vmbus_isr();
 }
 
-static bool vmbus_irq_initialized;
-
 static struct smp_hotplug_thread vmbus_irq_threads = {
        .store                  = &vmbus_irqd,
        .setup                  = vmbus_irqd_setup,
@@ -1497,11 +1495,10 @@ static int vmbus_bus_init(void)
         * the VMbus interrupt handler.
         */
 
-       if (IS_ENABLED(CONFIG_PREEMPT_RT) && !vmbus_irq_initialized) {
+       if (IS_ENABLED(CONFIG_PREEMPT_RT)) {
                ret = smpboot_register_percpu_thread(&vmbus_irq_threads);
                if (ret)
                        goto err_kthread;
-               vmbus_irq_initialized = true;
        }
 
        if (vmbus_irq == -1) {
@@ -1545,10 +1542,8 @@ err_connect:
        else
                free_percpu_irq(vmbus_irq, &vmbus_evt);
 err_setup:
-       if (IS_ENABLED(CONFIG_PREEMPT_RT) && vmbus_irq_initialized) {
+       if (IS_ENABLED(CONFIG_PREEMPT_RT))
                smpboot_unregister_percpu_thread(&vmbus_irq_threads);
-               vmbus_irq_initialized = false;
-       }
 err_kthread:
        bus_unregister(&hv_bus);
        return ret;
@@ -3046,10 +3041,9 @@ static void __exit vmbus_exit(void)
                hv_remove_vmbus_handler();
        else
                free_percpu_irq(vmbus_irq, &vmbus_evt);
-       if (IS_ENABLED(CONFIG_PREEMPT_RT) && vmbus_irq_initialized) {
+       if (IS_ENABLED(CONFIG_PREEMPT_RT))
                smpboot_unregister_percpu_thread(&vmbus_irq_threads);
-               vmbus_irq_initialized = false;
-       }
+
        for_each_online_cpu(cpu) {
                struct hv_per_cpu_context *hv_cpu
                        = per_cpu_ptr(hv_context.cpu_context, cpu);