| From foo@baz Sun Jun 17 12:07:34 CEST 2018 |
| From: oulijun <oulijun@huawei.com> |
| Date: Thu, 26 Apr 2018 14:46:16 +0800 |
| Subject: RDMA/hns: Intercept illegal RDMA operation when use inline data |
| |
| From: oulijun <oulijun@huawei.com> |
| |
| [ Upstream commit 328d405b3d4c8dd1f06bfd77f498e23281ae348c ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c |
| +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c |
| @@ -71,6 +71,11 @@ static int set_rwqe_data_seg(struct ib_q |
| 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); |