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