]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: hns3: allow configure ETS bandwidth of all TCs
authorGuangbin Huang <huangguangbin2@huawei.com>
Wed, 10 Nov 2021 13:42:56 +0000 (21:42 +0800)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 7 Dec 2021 06:33:41 +0000 (07:33 +0100)
BugLink: https://bugs.launchpad.net/bugs/1951822
[ Upstream commit 688db0c7a4a69ddc8b8143a1cac01eb20082a3aa ]

Currently, driver only allow configuring ETS bandwidth of TCs according
to the max TC number queried from firmware. However, the hardware actually
supports 8 TCs and users may need to configure ETS bandwidth of all TCs,
so remove the restriction.

Fixes: 330baff5423b ("net: hns3: add ETS TC weight setting in SSU module")
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c

index 90013c131e9499712ff3aef4ed1c8a230cc49872..375ebf105a9aae48bf07384e6515a480b7e8eeda 100644 (file)
@@ -129,7 +129,7 @@ static int hclge_ets_sch_mode_validate(struct hclge_dev *hdev,
        u32 total_ets_bw = 0;
        u8 i;
 
-       for (i = 0; i < hdev->tc_max; i++) {
+       for (i = 0; i < HNAE3_MAX_TC; i++) {
                switch (ets->tc_tsa[i]) {
                case IEEE_8021QAZ_TSA_STRICT:
                        if (hdev->tm_info.tc_info[i].tc_sch_mode !=
index a50e2edbf4a0f003b46accf73c1f66b23e50a322..429652a8cde167a062dffd28f5c754d5bb49a7d3 100644 (file)
@@ -1123,7 +1123,6 @@ static int hclge_tm_pri_tc_base_dwrr_cfg(struct hclge_dev *hdev)
 
 static int hclge_tm_ets_tc_dwrr_cfg(struct hclge_dev *hdev)
 {
-#define DEFAULT_TC_WEIGHT      1
 #define DEFAULT_TC_OFFSET      14
 
        struct hclge_ets_tc_weight_cmd *ets_weight;
@@ -1136,13 +1135,7 @@ static int hclge_tm_ets_tc_dwrr_cfg(struct hclge_dev *hdev)
        for (i = 0; i < HNAE3_MAX_TC; i++) {
                struct hclge_pg_info *pg_info;
 
-               ets_weight->tc_weight[i] = DEFAULT_TC_WEIGHT;
-
-               if (!(hdev->hw_tc_map & BIT(i)))
-                       continue;
-
-               pg_info =
-                       &hdev->tm_info.pg_info[hdev->tm_info.tc_info[i].pgid];
+               pg_info = &hdev->tm_info.pg_info[hdev->tm_info.tc_info[i].pgid];
                ets_weight->tc_weight[i] = pg_info->tc_dwrr[i];
        }