• Guangbin Huang's avatar
    net: hns3: reset DWRR of unused tc to zero · b63fcaab
    Guangbin Huang authored
    Currently, DWRR of tc will be initialized to a fixed value when this tc
    is enabled, but it is not been reset to 0 when this tc is disabled. It
    cause a problem that the DWRR of unused tc is not 0 after using tc tool
    to add and delete multi-tc parameters.
    
    For examples, after enabling 4 TCs and restoring to 1 TC by follow
    tc commands:
    
    $ tc qdisc add dev eth0 root mqprio num_tc 4 map 0 1 2 3 0 1 2 3 queues \
      8@0 8@8 8@16 8@24 hw 1 mode channel
    $ tc qdisc del dev eth0 root
    
    Now there is just one TC is enabled for eth0, but the tc info querying by
    debugfs is shown as follow:
    
    $ cat /mnt/hns3/0000:7d:00.0/tm/tc_sch_info
    enabled tc number: 1
    weight_offset: 14
    TC    MODE  WEIGHT
    0     dwrr    100
    1     dwrr    100
    2     dwrr    100
    3     dwrr    100
    4     dwrr      0
    5     dwrr      0
    6     dwrr      0
    7     dwrr      0
    
    This patch fixes it by resetting DWRR of tc to 0 when tc is disabled.
    
    Fixes: 84844054 ("net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver")
    Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b63fcaab
hclge_tm.c 48.3 KB