]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
net: hns3: fix bug of ethtool_ops.get_channels for VF
authorHuazhong Tan <tanhuazhong@huawei.com>
Tue, 22 Jan 2019 23:39:32 +0000 (07:39 +0800)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 05:29:37 +0000 (00:29 -0500)
BugLink: https://bugs.launchpad.net/bugs/1863019
[ Upstream commit 8be7362186bd5ccb5f6f72be49751ad2778e2636 ]

The current code returns the number of all queues that can be used and
the number of queues that have been allocated, which is incorrect.
What should be returned is the number of queues allocated for each enabled
TC and the number of queues that can be allocated.

This patch fixes it.

Fixes: 849e46077689 ("net: hns3: add ethtool_ops.get_channels support for VF")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

index 5a9de82359e42d0cc8a79c81dd7c1726b0e4a572..55f381faa3a9a093c5be173bb68322c82aa83b1e 100644 (file)
@@ -2466,7 +2466,8 @@ static u32 hclgevf_get_max_channels(struct hclgevf_dev *hdev)
        struct hnae3_handle *nic = &hdev->nic;
        struct hnae3_knic_private_info *kinfo = &nic->kinfo;
 
-       return min_t(u32, hdev->rss_size_max * kinfo->num_tc, hdev->num_tqps);
+       return min_t(u32, hdev->rss_size_max,
+                    hdev->num_tqps / kinfo->num_tc);
 }
 
 /**
@@ -2487,7 +2488,7 @@ static void hclgevf_get_channels(struct hnae3_handle *handle,
        ch->max_combined = hclgevf_get_max_channels(hdev);
        ch->other_count = 0;
        ch->max_other = 0;
-       ch->combined_count = hdev->num_tqps;
+       ch->combined_count = handle->kinfo.rss_size;
 }
 
 static void hclgevf_get_tqps_and_rss_info(struct hnae3_handle *handle,