]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/hns: Bugfix for the missing assignment for dip_idx
authorJunxian Huang <huangjunxian4@hisilicon.com>
Wed, 25 Aug 2021 09:43:11 +0000 (17:43 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Sep 2021 11:41:55 +0000 (13:41 +0200)
[ Upstream commit 074f315fc54a9ce45559a44ca36d9fa1ee1ea2cd ]

When the dgid-dip_idx mapping relationship exists, dip should be assigned.

Fixes: f91696f2f053 ("RDMA/hns: Support congestion control type selection according to the FW")
Link: https://lore.kernel.org/r/1629884592-23424-3-git-send-email-liangwenpeng@huawei.com
Signed-off-by: Junxian Huang <huangjunxian4@hisilicon.com>
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index dcbe5e28a4f7a4bdd50f96ceab5257690ebd1d2f..90945e664f5da33f45d23f99249b3934d8c057fa 100644 (file)
@@ -4735,8 +4735,10 @@ static int get_dip_ctx_idx(struct ib_qp *ibqp, const struct ib_qp_attr *attr,
        spin_lock_irqsave(&hr_dev->dip_list_lock, flags);
 
        list_for_each_entry(hr_dip, &hr_dev->dip_list, node) {
-               if (!memcmp(grh->dgid.raw, hr_dip->dgid, 16))
+               if (!memcmp(grh->dgid.raw, hr_dip->dgid, 16)) {
+                       *dip_idx = hr_dip->dip_idx;
                        goto out;
+               }
        }
 
        /* If no dgid is found, a new dip and a mapping between dgid and