OSDN Git Service

RDMA/hns: Add interception for resizing SRQs
authorYangyang Li <liyangyang20@huawei.com>
Sat, 19 Sep 2020 10:03:16 +0000 (18:03 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 24 Sep 2020 18:56:26 +0000 (15:56 -0300)
HIP08 doesn't support modifying the maximum number of outstanding WR in an
SRQ. However, the driver does not return a failure message, and users may
mistakenly think that the resizing is executed successfully. So the driver
needs to intercept this operation.

Fixes: ffb1308b88b6 ("RDMA/hns: Move SRQ code to the reasonable place")
Link: https://lore.kernel.org/r/1600509802-44382-3-git-send-email-liweihang@huawei.com
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 00d7cc9..b7605a9 100644 (file)
@@ -5118,6 +5118,10 @@ static int hns_roce_v2_modify_srq(struct ib_srq *ibsrq,
        struct hns_roce_cmd_mailbox *mailbox;
        int ret;
 
+       /* Resizing SRQs is not supported yet */
+       if (srq_attr_mask & IB_SRQ_MAX_WR)
+               return -EINVAL;
+
        if (srq_attr_mask & IB_SRQ_LIMIT) {
                if (srq_attr->srq_limit >= srq->wqe_cnt)
                        return -EINVAL;