[PATCH] misc: ibmvmc: free IRQ when enabling interrupts fails

From: Li Youhong

Date: Fri Aug 28 2026 - 03:21:53 EST


From: Li Youhong <liyouhong@xxxxxxxxxx>

request_irq() may succeed while vio_enable_interrupts() fails. The
shared error path freed the CRQ and killed the tasklet but left the IRQ
registered. Call free_irq() before jumping to that path.

Signed-off-by: Li Youhong <liyouhong@xxxxxxxxxx>
---
drivers/misc/ibmvmc.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c
index da82b1edb7c9..b72b1ac4b359 100644
--- a/drivers/misc/ibmvmc.c
+++ b/drivers/misc/ibmvmc.c
@@ -2176,6 +2176,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter)
rc = vio_enable_interrupts(vdev);
if (rc != 0) {
dev_err(adapter->dev, "Error %d enabling interrupts!!!\n", rc);
+ free_irq(vdev->irq, (void *)adapter);
goto req_irq_failed;
}

--
2.25.1