RDMA/hns: The UD mode can only be configured with DCQCN
authorLuoyouming <luoyouming@huawei.com>
Tue, 17 Oct 2023 12:52:37 +0000 (20:52 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:21 +0000 (11:59 +0100)
[ Upstream commit 27c5fd271d8b8730fc0bb1b6cae953ad7808a874 ]

Due to hardware limitations, only DCQCN is supported for UD. Therefore, the
default algorithm for UD is set to DCQCN.

Fixes: f91696f2f053 ("RDMA/hns: Support congestion control type selection according to the FW")
Signed-off-by: Luoyouming <luoyouming@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://lore.kernel.org/r/20231017125239.164455-6-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index b7faf5c..58d14f1 100644 (file)
@@ -4725,6 +4725,9 @@ static int check_cong_type(struct ib_qp *ibqp,
 {
        struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device);
 
+       if (ibqp->qp_type == IB_QPT_UD)
+               hr_dev->caps.cong_type = CONG_TYPE_DCQCN;
+
        /* different congestion types match different configurations */
        switch (hr_dev->caps.cong_type) {
        case CONG_TYPE_DCQCN: