Blob Blame History Raw
From: Lijun Ou <oulijun@huawei.com>
Date: Wed, 12 Dec 2018 17:49:07 +0800
Subject: RDMA/hns: Bugfix for the scene without receiver queue
Patch-mainline: v5.1-rc1
Git-commit: 4d103905eb1e4f14cb62fcf962c9d35da7005dea
References: bsc#1104427 FATE#326416 bsc#1137233

In some application scenario, the user could not have receive queue when
run rdma write or read operation.

Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/infiniband/hw/hns/hns_roce_qp.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/infiniband/hw/hns/hns_roce_qp.c
+++ b/drivers/infiniband/hw/hns/hns_roce_qp.c
@@ -526,7 +526,8 @@ static int hns_roce_qp_has_sq(struct ib_
 static int hns_roce_qp_has_rq(struct ib_qp_init_attr *attr)
 {
 	if (attr->qp_type == IB_QPT_XRC_INI ||
-	    attr->qp_type == IB_QPT_XRC_TGT || attr->srq)
+	    attr->qp_type == IB_QPT_XRC_TGT || attr->srq ||
+	    !attr->cap.max_recv_wr)
 		return 0;
 
 	return 1;