RDMA/hns: Fix unnecessary err return when using invalid congest control algorithm
authorJunxian Huang <huangjunxian6@hisilicon.com>
Sat, 28 Oct 2023 09:32:42 +0000 (17:32 +0800)
committerLeon Romanovsky <leon@kernel.org>
Mon, 13 Nov 2023 08:25:29 +0000 (10:25 +0200)
Add a default congest control algorithm so that driver won't return
an error when the configured algorithm is invalid.

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

index 0cd2612a49870f1e831f5a6b088aff3260ce2cb6..2bca9560f32ddd02628eb655c1be261489c726c9 100644 (file)
@@ -4760,10 +4760,15 @@ static int check_cong_type(struct ib_qp *ibqp,
                cong_alg->wnd_mode_sel = WND_LIMIT;
                break;
        default:
-               ibdev_err(&hr_dev->ib_dev,
-                         "error type(%u) for congestion selection.\n",
-                         hr_dev->caps.cong_type);
-               return -EINVAL;
+               ibdev_warn(&hr_dev->ib_dev,
+                          "invalid type(%u) for congestion selection.\n",
+                          hr_dev->caps.cong_type);
+               hr_dev->caps.cong_type = CONG_TYPE_DCQCN;
+               cong_alg->alg_sel = CONG_DCQCN;
+               cong_alg->alg_sub_sel = UNSUPPORT_CONG_LEVEL;
+               cong_alg->dip_vld = DIP_INVALID;
+               cong_alg->wnd_mode_sel = WND_LIMIT;
+               break;
        }
 
        return 0;