blob: 3139429e3fb64a1440914620e28a3b75979b615f [file] [log] [blame]
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);