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/sfc/ef100_ethtool.c | 1 + drivers/net/ethernet/sfc/ethtool.c | 1 + drivers/net/ethernet/sfc/ethtool_common.c | 11 +++++++---- drivers/net/ethernet/sfc/ethtool_common.h | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/sfc/ef100_ethtool.c b/drivers/net/ethernet/sfc/ef100_ethtool.c index 6c3b74000d3b6..05dc7b10c8855 100644 --- a/drivers/net/ethernet/sfc/ef100_ethtool.c +++ b/drivers/net/ethernet/sfc/ef100_ethtool.c @@ -54,6 +54,7 @@ const struct ethtool_ops ef100_ethtool_ops = { .get_ethtool_stats = efx_ethtool_get_stats, .get_rxnfc = efx_ethtool_get_rxnfc, .set_rxnfc = efx_ethtool_set_rxnfc, + .get_rx_ring_count = efx_ethtool_get_rx_ring_count, .reset = efx_ethtool_reset, .get_rxfh_indir_size = efx_ethtool_get_rxfh_indir_size, diff --git a/drivers/net/ethernet/sfc/ethtool.c b/drivers/net/ethernet/sfc/ethtool.c index 18fe5850a9786..362388754a292 100644 --- a/drivers/net/ethernet/sfc/ethtool.c +++ b/drivers/net/ethernet/sfc/ethtool.c @@ -261,6 +261,7 @@ const struct ethtool_ops efx_ethtool_ops = { .reset = efx_ethtool_reset, .get_rxnfc = efx_ethtool_get_rxnfc, .set_rxnfc = efx_ethtool_set_rxnfc, + .get_rx_ring_count = efx_ethtool_get_rx_ring_count, .get_rxfh_indir_size = efx_ethtool_get_rxfh_indir_size, .get_rxfh_key_size = efx_ethtool_get_rxfh_key_size, .rxfh_per_ctx_fields = true, diff --git a/drivers/net/ethernet/sfc/ethtool_common.c b/drivers/net/ethernet/sfc/ethtool_common.c index fa303e171d98b..2fc42b1a2bfb7 100644 --- a/drivers/net/ethernet/sfc/ethtool_common.c +++ b/drivers/net/ethernet/sfc/ethtool_common.c @@ -850,6 +850,13 @@ int efx_ethtool_get_rxfh_fields(struct net_device *net_dev, return rc; } +u32 efx_ethtool_get_rx_ring_count(struct net_device *net_dev) +{ + struct efx_nic *efx = efx_netdev_priv(net_dev); + + return efx->n_rx_channels; +} + int efx_ethtool_get_rxnfc(struct net_device *net_dev, struct ethtool_rxnfc *info, u32 *rule_locs) { @@ -858,10 +865,6 @@ int efx_ethtool_get_rxnfc(struct net_device *net_dev, s32 rc = 0; switch (info->cmd) { - case ETHTOOL_GRXRINGS: - info->data = efx->n_rx_channels; - return 0; - case ETHTOOL_GRXCLSRLCNT: info->data = efx_filter_get_rx_id_limit(efx); if (info->data == 0) diff --git a/drivers/net/ethernet/sfc/ethtool_common.h b/drivers/net/ethernet/sfc/ethtool_common.h index 24db4fccbe78a..f96db42534546 100644 --- a/drivers/net/ethernet/sfc/ethtool_common.h +++ b/drivers/net/ethernet/sfc/ethtool_common.h @@ -40,6 +40,7 @@ int efx_ethtool_set_fecparam(struct net_device *net_dev, struct ethtool_fecparam *fecparam); int efx_ethtool_get_rxnfc(struct net_device *net_dev, struct ethtool_rxnfc *info, u32 *rule_locs); +u32 efx_ethtool_get_rx_ring_count(struct net_device *net_dev); int efx_ethtool_set_rxnfc(struct net_device *net_dev, struct ethtool_rxnfc *info); u32 efx_ethtool_get_rxfh_indir_size(struct net_device *net_dev); -- 2.47.3
