mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
RDMA/bnxt_re: Fix a possible memory leak
Inside bnxt_qplib_create_cq(), when the check for NULL DPI fails, driver
returns directly without freeing the memory allocated inside
bnxt_qplib_alloc_init_hwq() routine.
Fixed this by moving the check for NULL DPI before invoking
bnxt_qplib_alloc_init_hwq().
Fixes: 1ac5a40479 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
Link: https://lore.kernel.org/r/1684397461-23082-2-git-send-email-selvin.xavier@broadcom.com
Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
56518a603f
commit
349e3c0cf2
@@ -2056,6 +2056,12 @@ int bnxt_qplib_create_cq(struct bnxt_qplib_res *res, struct bnxt_qplib_cq *cq)
|
|||||||
u32 pg_sz_lvl;
|
u32 pg_sz_lvl;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
if (!cq->dpi) {
|
||||||
|
dev_err(&rcfw->pdev->dev,
|
||||||
|
"FP: CREATE_CQ failed due to NULL DPI\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
hwq_attr.res = res;
|
hwq_attr.res = res;
|
||||||
hwq_attr.depth = cq->max_wqe;
|
hwq_attr.depth = cq->max_wqe;
|
||||||
hwq_attr.stride = sizeof(struct cq_base);
|
hwq_attr.stride = sizeof(struct cq_base);
|
||||||
@@ -2069,11 +2075,6 @@ int bnxt_qplib_create_cq(struct bnxt_qplib_res *res, struct bnxt_qplib_cq *cq)
|
|||||||
CMDQ_BASE_OPCODE_CREATE_CQ,
|
CMDQ_BASE_OPCODE_CREATE_CQ,
|
||||||
sizeof(req));
|
sizeof(req));
|
||||||
|
|
||||||
if (!cq->dpi) {
|
|
||||||
dev_err(&rcfw->pdev->dev,
|
|
||||||
"FP: CREATE_CQ failed due to NULL DPI\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
req.dpi = cpu_to_le32(cq->dpi->dpi);
|
req.dpi = cpu_to_le32(cq->dpi->dpi);
|
||||||
req.cq_handle = cpu_to_le64(cq->cq_handle);
|
req.cq_handle = cpu_to_le64(cq->cq_handle);
|
||||||
req.cq_size = cpu_to_le32(cq->hwq.max_elements);
|
req.cq_size = cpu_to_le32(cq->hwq.max_elements);
|
||||||
|
|||||||
Reference in New Issue
Block a user