diff options
| author | Zhiqi Song <[email protected]> | 2022-09-24 15:38:31 +0800 |
|---|---|---|
| committer | Herbert Xu <[email protected]> | 2022-10-21 19:05:23 +0800 |
| commit | 45e6319bd5f2154d8b8c9f1eaa4ac030ba0d330c (patch) | |
| tree | 50851e55193b78e72a9ec9885d14897097a5d484 | |
| parent | 9f6035af06b526e678808d492fc0830aef6cfbd8 (diff) | |
crypto: hisilicon/hpre - fix resource leak in remove process
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 <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
| -rw-r--r-- | drivers/crypto/hisilicon/hpre/hpre_main.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/crypto/hisilicon/hpre/hpre_main.c b/drivers/crypto/hisilicon/hpre/hpre_main.c index 471e5ca720f5..baf1faec7046 100644 --- a/drivers/crypto/hisilicon/hpre/hpre_main.c +++ b/drivers/crypto/hisilicon/hpre/hpre_main.c @@ -1437,18 +1437,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); |