net: hns3: add new function hclge_tm_schd_mode_tc_base_cfg()
authorGuangbin Huang <huangguangbin2@huawei.com>
Mon, 29 Nov 2021 14:00:23 +0000 (22:00 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Nov 2021 14:26:17 +0000 (14:26 +0000)
This patch encapsulates the process code of tc based schedule mode of
function hclge_tm_lvl34_schd_mode_cfg() into a new function
hclge_tm_schd_mode_tc_base_cfg(). It make code more concise and the new
process code can be reused.

Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c

index 429652a..1afd305 100644 (file)
@@ -1274,6 +1274,27 @@ static int hclge_tm_lvl2_schd_mode_cfg(struct hclge_dev *hdev)
        return 0;
 }
 
+static int hclge_tm_schd_mode_tc_base_cfg(struct hclge_dev *hdev, u8 pri_id)
+{
+       struct hclge_vport *vport = hdev->vport;
+       int ret;
+       u16 i;
+
+       ret = hclge_tm_pri_schd_mode_cfg(hdev, pri_id);
+       if (ret)
+               return ret;
+
+       for (i = 0; i < hdev->num_alloc_vport; i++) {
+               ret = hclge_tm_qs_schd_mode_cfg(hdev,
+                                               vport[i].qs_offset + pri_id,
+                                               HCLGE_SCH_MODE_DWRR);
+               if (ret)
+                       return ret;
+       }
+
+       return 0;
+}
+
 static int hclge_tm_schd_mode_vnet_base_cfg(struct hclge_vport *vport)
 {
        struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
@@ -1304,21 +1325,13 @@ static int hclge_tm_lvl34_schd_mode_cfg(struct hclge_dev *hdev)
 {
        struct hclge_vport *vport = hdev->vport;
        int ret;
-       u8 i, k;
+       u8 i;
 
        if (hdev->tx_sch_mode == HCLGE_FLAG_TC_BASE_SCH_MODE) {
                for (i = 0; i < hdev->tm_info.num_tc; i++) {
-                       ret = hclge_tm_pri_schd_mode_cfg(hdev, i);
+                       ret = hclge_tm_schd_mode_tc_base_cfg(hdev, i);
                        if (ret)
                                return ret;
-
-                       for (k = 0; k < hdev->num_alloc_vport; k++) {
-                               ret = hclge_tm_qs_schd_mode_cfg(
-                                       hdev, vport[k].qs_offset + i,
-                                       HCLGE_SCH_MODE_DWRR);
-                               if (ret)
-                                       return ret;
-                       }
                }
        } else {
                for (i = 0; i < hdev->num_alloc_vport; i++) {