scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the probe fails
authorLuo Jiaxing <luojiaxing@huawei.com>
Thu, 24 Oct 2019 14:08:24 +0000 (22:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 Jan 2020 18:16:49 +0000 (19:16 +0100)
[ Upstream commit cabe7c10c97a0857a9fb14b6c772ab784947995d ]

Although if the debugfs initialization fails, we will delete the debugfs
folder of hisi_sas, but we did not consider the scenario where debugfs was
successfully initialized, but the probe failed for other reasons. We found
out that hisi_sas folder is still remain after the probe failed.

When probe fail, we should delete debugfs folder to avoid the above issue.

Link: https://lore.kernel.org/r/1571926105-74636-18-git-send-email-john.garry@huawei.com
Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/hisi_sas/hisi_sas_main.c
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c

index 20f0cb4698b7f36fabf5132df79bd5a265738c59..633effb09c9cc0a9107ed1ced2d2f5453386ef30 100644 (file)
@@ -2682,6 +2682,7 @@ int hisi_sas_probe(struct platform_device *pdev,
 err_out_register_ha:
        scsi_remove_host(shost);
 err_out_ha:
+       hisi_sas_debugfs_exit(hisi_hba);
        hisi_sas_free(hisi_hba);
        scsi_host_put(shost);
        return rc;
index cb8d087762dbd00ef05b10d1a75e3be56a711bd3..ef32ee12f60650d1da77d8e2309fd93fb91807e7 100644 (file)
@@ -3259,6 +3259,7 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 err_out_register_ha:
        scsi_remove_host(shost);
 err_out_ha:
+       hisi_sas_debugfs_exit(hisi_hba);
        scsi_host_put(shost);
 err_out_regions:
        pci_release_regions(pdev);