RDMA/hns: Intercept illegal RDMA operation when use inline data
authoroulijun <oulijun@huawei.com>
Thu, 26 Apr 2018 06:46:16 +0000 (14:46 +0800)
committerDoug Ledford <dledford@redhat.com>
Fri, 27 Apr 2018 18:20:47 +0000 (14:20 -0400)
RDMA read operation is not supported inline data. If user cofigures
issue a RDMA read and use inline data, it will happen a hardware
error.

Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 8b84ab7800d8cec4bf4a939f5290e83c176f2dc1..aa5f9b3e1c10c0fa853eac99091d64e05b9881bc 100644 (file)
@@ -71,6 +71,11 @@ static int set_rwqe_data_seg(struct ib_qp *ibqp, struct ib_send_wr *wr,
                        return -EINVAL;
                }
 
+               if (wr->opcode == IB_WR_RDMA_READ) {
+                       dev_err(hr_dev->dev, "Not support inline data!\n");
+                       return -EINVAL;
+               }
+
                for (i = 0; i < wr->num_sge; i++) {
                        memcpy(wqe, ((void *)wr->sg_list[i].addr),
                               wr->sg_list[i].length);