summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShiraz Saleem <shiraz.saleem@intel.com>2018-01-11 18:10:51 -0600
committerJason Gunthorpe <jgg@mellanox.com>2018-01-16 20:38:18 -0700
commit6376e926af1a8661dd1b2e6d0896e07f84a35844 (patch)
tree2afbded4bf66a526eaa9ad1c0c30357d0e3c2376
parent23541b28e5a33a277f654dd6672484ded1050216 (diff)
downloadop-kernel-dev-6376e926af1a8661dd1b2e6d0896e07f84a35844.zip
op-kernel-dev-6376e926af1a8661dd1b2e6d0896e07f84a35844.tar.gz
i40iw: Zero-out consumer key on allocate stag for FMR
If the application invalidates the MR before the FMR WR, HW parses the consumer key portion of the stag and returns an invalid stag key Asynchronous Event (AE) that tears down the QP. Fix this by zeroing-out the consumer key portion of the allocated stag returned to application for FMR. Fixes: ee855d3b93f3 ("RDMA/i40iw: Add base memory management extensions") Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_verbs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_verbs.c b/drivers/infiniband/hw/i40iw/i40iw_verbs.c
index 3c6f3ce..9f18997 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_verbs.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_verbs.c
@@ -1637,6 +1637,7 @@ static struct ib_mr *i40iw_alloc_mr(struct ib_pd *pd,
err_code = -EOVERFLOW;
goto err;
}
+ stag &= ~I40IW_CQPSQ_STAG_KEY_MASK;
iwmr->stag = stag;
iwmr->ibmr.rkey = stag;
iwmr->ibmr.lkey = stag;
OpenPOWER on IntegriCloud