]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
qed: Fix ILT and XRCD bitmap memory leaks
authorYuval Basson <ybason@marvell.com>
Tue, 21 Jul 2020 11:34:26 +0000 (14:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Aug 2020 06:26:42 +0000 (08:26 +0200)
[ Upstream commit d4eae993fc45398526aed683e225d6fa713f8ddf ]

- Free ILT lines used for XRC-SRQ's contexts.
- Free XRCD bitmap

Fixes: b8204ad878ce7 ("qed: changes to ILT to support XRC")
Fixes: 7bfb399eca460 ("qed: Add XRC to RoCE")
Signed-off-by: Michal Kalderon <mkalderon@marvell.com>
Signed-off-by: Yuval Basson <ybason@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/qlogic/qed/qed_cxt.c
drivers/net/ethernet/qlogic/qed/qed_rdma.c

index d13ec88313c386d9ef05a751453630480c9b3336..eb70fdddddbfe6f50f1c7f4ad6763296a21a2eb2 100644 (file)
@@ -2355,6 +2355,11 @@ qed_cxt_free_ilt_range(struct qed_hwfn *p_hwfn,
                elem_size = SRQ_CXT_SIZE;
                p_blk = &p_cli->pf_blks[SRQ_BLK];
                break;
+       case QED_ELEM_XRC_SRQ:
+               p_cli = &p_hwfn->p_cxt_mngr->clients[ILT_CLI_TSDM];
+               elem_size = XRC_SRQ_CXT_SIZE;
+               p_blk = &p_cli->pf_blks[SRQ_BLK];
+               break;
        case QED_ELEM_TASK:
                p_cli = &p_hwfn->p_cxt_mngr->clients[ILT_CLI_CDUT];
                elem_size = TYPE1_TASK_CXT_SIZE(p_hwfn);
index 19c0c8864da1304e756858fe96fa56cb828c4d6c..4ad5f21de79eaea9da9375ce7d38d556f171b5b5 100644 (file)
@@ -404,6 +404,7 @@ static void qed_rdma_resc_free(struct qed_hwfn *p_hwfn)
        qed_rdma_bmap_free(p_hwfn, &p_hwfn->p_rdma_info->srq_map, 1);
        qed_rdma_bmap_free(p_hwfn, &p_hwfn->p_rdma_info->real_cid_map, 1);
        qed_rdma_bmap_free(p_hwfn, &p_hwfn->p_rdma_info->xrc_srq_map, 1);
+       qed_rdma_bmap_free(p_hwfn, &p_hwfn->p_rdma_info->xrcd_map, 1);
 
        kfree(p_rdma_info->port);
        kfree(p_rdma_info->dev);