]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: hisilicon/hpre - fix resource leak in remove process
authorZhiqi Song <songzhiqi1@huawei.com>
Sat, 24 Sep 2022 07:38:31 +0000 (15:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:26:47 +0000 (13:26 +0100)
[ Upstream commit 45e6319bd5f2154d8b8c9f1eaa4ac030ba0d330c ]

In hpre_remove(), when the disable operation of qm sriov failed,
the following logic should continue to be executed to release the
remaining resources that have been allocated, instead of returning
directly, otherwise there will be resource leakage.

Signed-off-by: Zhiqi Song <songzhiqi1@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/hisilicon/hpre/hpre_main.c

index fd55c6ff13ba34e2c6a0c20b74c6ba69a4317619..7a50ca664ada1d2717f62de1dae0866cb3e68c2a 100644 (file)
@@ -1287,18 +1287,12 @@ err_with_qm_init:
 static void hpre_remove(struct pci_dev *pdev)
 {
        struct hisi_qm *qm = pci_get_drvdata(pdev);
-       int ret;
 
        hisi_qm_pm_uninit(qm);
        hisi_qm_wait_task_finish(qm, &hpre_devices);
        hisi_qm_alg_unregister(qm, &hpre_devices);
-       if (qm->fun_type == QM_HW_PF && qm->vfs_num) {
-               ret = hisi_qm_sriov_disable(pdev, true);
-               if (ret) {
-                       pci_err(pdev, "Disable SRIOV fail!\n");
-                       return;
-               }
-       }
+       if (qm->fun_type == QM_HW_PF && qm->vfs_num)
+               hisi_qm_sriov_disable(pdev, true);
 
        hpre_debugfs_exit(qm);
        hisi_qm_stop(qm, QM_NORMAL);