nic_dev->max_qps is used to allocate hardware resources. Therefore, it is assigned the value 1 only when its value is abnormal. In other scenarios, the value cannot be changed. However, the value of nic_dev->q_params.num_qps can be dynamically changed. Fixes: 1f3838b84a63 ("hinic3: Add Rss function") Co-developed-by: Wu Di Signed-off-by: Wu Di Co-developed-by: Teng Peisen Signed-off-by: Teng Peisen Signed-off-by: Fan Gong --- drivers/net/ethernet/huawei/hinic3/hinic3_rss.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_rss.c b/drivers/net/ethernet/huawei/hinic3/hinic3_rss.c index 25db74d8c7dd..75dc0c044071 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_rss.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_rss.c @@ -307,15 +307,13 @@ void hinic3_try_to_enable_rss(struct net_device *netdev) int err; nic_dev->max_qps = hinic3_func_max_qnum(hwdev); - if (nic_dev->max_qps <= 1 || + if (nic_dev->max_qps == 1 || !hinic3_test_support(nic_dev, HINIC3_NIC_F_RSS)) goto err_reset_q_params; err = alloc_rss_resource(netdev); - if (err) { - nic_dev->max_qps = 1; + if (err) goto err_reset_q_params; - } set_bit(HINIC3_RSS_ENABLE, &nic_dev->flags); decide_num_qps(netdev); @@ -324,7 +322,6 @@ void hinic3_try_to_enable_rss(struct net_device *netdev) if (err) { dev_err(hwdev->dev, "Failed to set hardware rss parameters\n"); hinic3_clear_rss_config(netdev); - nic_dev->max_qps = 1; goto err_reset_q_params; } @@ -332,5 +329,5 @@ void hinic3_try_to_enable_rss(struct net_device *netdev) err_reset_q_params: clear_bit(HINIC3_RSS_ENABLE, &nic_dev->flags); - nic_dev->q_params.num_qps = nic_dev->max_qps; + nic_dev->q_params.num_qps = 1; } -- 2.43.0