misc: ibmvmc: free IRQ when enabling interrupts fails

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>
Link: https://patch.msgid.link/20260828072040.209200-1-dayou5941@163.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Li Youhong 2026-08-28 15:20:40 +08:00 committed by Greg Kroah-Hartman
parent 80195a4358
commit 933f37aff6

View File

@ -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;
}