[PATCH] scsi: pm8001: Fix the warning when failing at the probe time

From: Zheyu Ma
Date: Fri Jul 15 2022 - 03:32:40 EST


When the driver fails at chip_init(), we will get the following warning:

[ 7.778705] remove_proc_entry: removing non-empty directory 'irq/21', leaking at least 'pm80xx0'
[ 7.779414] WARNING: CPU: 0 PID: 290 at fs/proc/generic.c:720 remove_proc_entry+0x389/0x3f0
[ 7.782793] RIP: 0010:remove_proc_entry+0x389/0x3f0
[ 7.790813] Call Trace:
[ 7.791284] unregister_irq_proc+0x14c/0x170
[ 7.793043] pci_disable_device+0x1ad/0x380
[ 7.793396] pm8001_pci_probe+0x6d9/0xd40 [pm80xx]

Fix this by free the irq before disabling the pci device.

Signed-off-by: Zheyu Ma <zheyuma97@xxxxxxxxx>
---
drivers/scsi/pm8001/pm8001_init.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index 9b04f1a6a67d..71ade184ee6f 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -1159,6 +1159,7 @@ static int pm8001_pci_probe(struct pci_dev *pdev,
err_out_shost:
scsi_remove_host(pm8001_ha->shost);
err_out_ha_free:
+ free_irq(pm8001_ha->irq, sha);
pm8001_free(pm8001_ha);
err_out_free:
kfree(sha);
--
2.25.1