Commit 116be08f authored by Weili Qian's avatar Weili Qian Committed by Herbert Xu
Browse files

crypto: hisilicon/qm - fix missing destroy qp_idr



In the function hisi_qm_memory_init(), if resource alloc fails after
idr_init, the initialized qp_idr needs to be destroyed.

Signed-off-by: default avatarWeili Qian <qianweili@huawei.com>
Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 582b05bb
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -6140,7 +6140,7 @@ static int hisi_qm_memory_init(struct hisi_qm *qm)
	dev_dbg(dev, "allocate qm dma buf size=%zx)\n", qm->qdma.size);
	if (!qm->qdma.va) {
		ret = -ENOMEM;
		goto err_alloc_qdma;
		goto err_destroy_idr;
	}

	QM_INIT_BUF(qm, eqe, QM_EQ_DEPTH);
@@ -6156,7 +6156,8 @@ static int hisi_qm_memory_init(struct hisi_qm *qm)

err_alloc_qp_array:
	dma_free_coherent(dev, qm->qdma.size, qm->qdma.va, qm->qdma.dma);
err_alloc_qdma:
err_destroy_idr:
	idr_destroy(&qm->qp_idr);
	kfree(qm->factor);

	return ret;