| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: "Kalderon, Michal" <Michal.Kalderon@cavium.com> |
| Date: Mon, 5 Mar 2018 10:50:11 +0200 |
| Subject: RDMA/qedr: Fix iWARP write and send with immediate |
| |
| From: "Kalderon, Michal" <Michal.Kalderon@cavium.com> |
| |
| [ Upstream commit 551e1c67b4207455375a2e7a285dea1c7e8fc361 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/hw/qedr/verbs.c | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/drivers/infiniband/hw/qedr/verbs.c |
| +++ b/drivers/infiniband/hw/qedr/verbs.c |
| @@ -2807,6 +2807,11 @@ int __qedr_post_send(struct ib_qp *ibqp, |
| |
| 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; |
| @@ -2848,6 +2853,11 @@ int __qedr_post_send(struct ib_qp *ibqp, |
| 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; |
| |