Commit 6c2f7619 authored by Shiraz Saleem's avatar Shiraz Saleem Committed by Doug Ledford

RDMA/i40iw: Fix for using one sge for RDMA READ

A check is added to validate the requested sge number.
iWARP doesn't support multiple sg elements for
RDMA READ work requests.
Signed-off-by: default avatarTatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: default avatarFaisal Latif <faisal.latif@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent df2d96c3
...@@ -74,7 +74,7 @@ static int i40iw_query_device(struct ib_device *ibdev, ...@@ -74,7 +74,7 @@ static int i40iw_query_device(struct ib_device *ibdev,
props->max_cqe = iwdev->max_cqe; props->max_cqe = iwdev->max_cqe;
props->max_mr = iwdev->max_mr; props->max_mr = iwdev->max_mr;
props->max_pd = iwdev->max_pd; props->max_pd = iwdev->max_pd;
props->max_sge_rd = 1; props->max_sge_rd = I40IW_MAX_SGE_RD;
props->max_qp_rd_atom = I40IW_MAX_IRD_SIZE; props->max_qp_rd_atom = I40IW_MAX_IRD_SIZE;
props->max_qp_init_rd_atom = props->max_qp_rd_atom; props->max_qp_init_rd_atom = props->max_qp_rd_atom;
props->atomic_cap = IB_ATOMIC_NONE; props->atomic_cap = IB_ATOMIC_NONE;
...@@ -2117,6 +2117,10 @@ static int i40iw_post_send(struct ib_qp *ibqp, ...@@ -2117,6 +2117,10 @@ static int i40iw_post_send(struct ib_qp *ibqp,
inv_stag = true; inv_stag = true;
/* fall-through*/ /* fall-through*/
case IB_WR_RDMA_READ: case IB_WR_RDMA_READ:
if (ib_wr->num_sge > I40IW_MAX_SGE_RD) {
err = -EINVAL;
break;
}
info.op_type = I40IW_OP_TYPE_RDMA_READ; info.op_type = I40IW_OP_TYPE_RDMA_READ;
info.op.rdma_read.rem_addr.tag_off = rdma_wr(ib_wr)->remote_addr; info.op.rdma_read.rem_addr.tag_off = rdma_wr(ib_wr)->remote_addr;
info.op.rdma_read.rem_addr.stag = rdma_wr(ib_wr)->rkey; info.op.rdma_read.rem_addr.stag = rdma_wr(ib_wr)->rkey;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment