qed: Fix ILT and XRCD bitmap memory leaks
authorYuval Basson <ybason@marvell.com>
Tue, 21 Jul 2020 11:34:26 +0000 (14:34 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2020 22:50:53 +0000 (15:50 -0700)
- 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>
drivers/net/ethernet/qlogic/qed/qed_cxt.c
drivers/net/ethernet/qlogic/qed/qed_rdma.c

index 5362dc18b6c2c6e1ab196eb2e95460ba28f334a3..6c221e9c87995ca9c5b676256ad75ff8183e7075 100644 (file)
@@ -2335,6 +2335,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 e5648ca2838b3c3bc9e0c699938e00096b38cf88..a4bcde522cdf9d7267794b5cc8af7946ee6d084f 100644 (file)
@@ -379,6 +379,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);