RDMA/irdma: Remove incorrect masking of PD
authorMustafa Ismail <mustafa.ismail@intel.com>
Fri, 25 Feb 2022 16:32:11 +0000 (10:32 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:36 +0000 (14:23 +0200)
[ Upstream commit 17850f2b0b4b806e47cc44df94186bfc2cdd490b ]

The PD id is masked with 0x7fff, while PD can be 18 bits for GEN2 HW.
Remove the masking as it should not be needed and can cause incorrect PD
id to be used.

Fixes: b48c24c2d710 ("RDMA/irdma: Implement device supported verb APIs")
Link: https://lore.kernel.org/r/20220225163211.127-4-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/irdma/verbs.c

index 8bbc462..4a6fdd5 100644 (file)
@@ -2506,7 +2506,7 @@ static int irdma_dealloc_mw(struct ib_mw *ibmw)
        cqp_info = &cqp_request->info;
        info = &cqp_info->in.u.dealloc_stag.info;
        memset(info, 0, sizeof(*info));
-       info->pd_id = iwpd->sc_pd.pd_id & 0x00007fff;
+       info->pd_id = iwpd->sc_pd.pd_id;
        info->stag_idx = ibmw->rkey >> IRDMA_CQPSQ_STAG_IDX_S;
        info->mr = false;
        cqp_info->cqp_cmd = IRDMA_OP_DEALLOC_STAG;
@@ -3018,7 +3018,7 @@ static int irdma_dereg_mr(struct ib_mr *ib_mr, struct ib_udata *udata)
        cqp_info = &cqp_request->info;
        info = &cqp_info->in.u.dealloc_stag.info;
        memset(info, 0, sizeof(*info));
-       info->pd_id = iwpd->sc_pd.pd_id & 0x00007fff;
+       info->pd_id = iwpd->sc_pd.pd_id;
        info->stag_idx = ib_mr->rkey >> IRDMA_CQPSQ_STAG_IDX_S;
        info->mr = true;
        if (iwpbl->pbl_allocated)