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

Li Youhong posted 1 patch 4 weeks, 1 day ago
drivers/misc/ibmvmc.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] misc: ibmvmc: free IRQ when enabling interrupts fails
Posted by Li Youhong 4 weeks, 1 day ago
From: Li Youhong <liyouhong@kylinos.cn>

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@kylinos.cn>
---
 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