Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <[email protected]>
---
 drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c 
b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
index 6fef47ba0a59b..a6e1826dd5d7e 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
@@ -500,20 +500,25 @@ static int aq_ethtool_set_rss(struct net_device *netdev,
        return err;
 }
 
+static u32 aq_ethtool_get_rx_ring_count(struct net_device *ndev)
+{
+       struct aq_nic_cfg_s *cfg;
+       struct aq_nic_s *aq_nic;
+
+       aq_nic = netdev_priv(ndev);
+       cfg = aq_nic_get_cfg(aq_nic);
+
+       return cfg->vecs;
+}
+
 static int aq_ethtool_get_rxnfc(struct net_device *ndev,
                                struct ethtool_rxnfc *cmd,
                                u32 *rule_locs)
 {
        struct aq_nic_s *aq_nic = netdev_priv(ndev);
-       struct aq_nic_cfg_s *cfg;
        int err = 0;
 
-       cfg = aq_nic_get_cfg(aq_nic);
-
        switch (cmd->cmd) {
-       case ETHTOOL_GRXRINGS:
-               cmd->data = cfg->vecs;
-               break;
        case ETHTOOL_GRXCLSRLCNT:
                cmd->rule_cnt = aq_get_rxnfc_count_all_rules(aq_nic);
                break;
@@ -1072,6 +1077,7 @@ const struct ethtool_ops aq_ethtool_ops = {
        .set_rxfh            = aq_ethtool_set_rss,
        .get_rxnfc           = aq_ethtool_get_rxnfc,
        .set_rxnfc           = aq_ethtool_set_rxnfc,
+       .get_rx_ring_count   = aq_ethtool_get_rx_ring_count,
        .get_msglevel        = aq_get_msg_level,
        .set_msglevel        = aq_set_msg_level,
        .get_sset_count      = aq_ethtool_get_sset_count,

-- 
2.47.3


Reply via email to