Commit 67a8695a authored by Junxian Huang's avatar Junxian Huang Committed by Zheng Zengkai
Browse files

RDMA/hns: Bugfix for the missing assignment for dip_idx

mainline inclusion
from mainline-v5.15-rc1
commit 074f315f
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4QOTS
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/commit/?id=074f315fc54a9ce45559a44ca36d9fa1ee1ea2cd

---------------------------------------------------------------------

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

Fixes: f91696f2 ("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: default avatarJunxian Huang <huangjunxian4@hisilicon.com>
Signed-off-by: default avatarWenpeng Liang <liangwenpeng@huawei.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
sigend-off-by: default avatarGuofeng Yue <yueguofeng@hisilicon.com>

Reviewed-by: default avatarYangyang Li <liyangyang20@huawei.com>
Acked-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 5fee4bf3
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4500,9 +4500,11 @@ 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
	 * dip_idx will be created.