RDMA/qedr: Fix iWARP write and send with immediate
iWARP does not support RDMA WRITE or SEND with immediate data. Driver should check this before submitting to FW and return an immediate error Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com> Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
这个提交包含在:
@@ -3034,6 +3034,11 @@ static int __qedr_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
||||
|
||||
switch (wr->opcode) {
|
||||
case IB_WR_SEND_WITH_IMM:
|
||||
if (unlikely(rdma_protocol_iwarp(&dev->ibdev, 1))) {
|
||||
rc = -EINVAL;
|
||||
*bad_wr = wr;
|
||||
break;
|
||||
}
|
||||
wqe->req_type = RDMA_SQ_REQ_TYPE_SEND_WITH_IMM;
|
||||
swqe = (struct rdma_sq_send_wqe_1st *)wqe;
|
||||
swqe->wqe_size = 2;
|
||||
@@ -3075,6 +3080,11 @@ static int __qedr_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
||||
break;
|
||||
|
||||
case IB_WR_RDMA_WRITE_WITH_IMM:
|
||||
if (unlikely(rdma_protocol_iwarp(&dev->ibdev, 1))) {
|
||||
rc = -EINVAL;
|
||||
*bad_wr = wr;
|
||||
break;
|
||||
}
|
||||
wqe->req_type = RDMA_SQ_REQ_TYPE_RDMA_WR_WITH_IMM;
|
||||
rwqe = (struct rdma_sq_rdma_wqe_1st *)wqe;
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户