Commit 84eaf4359c36 ("net: ethtool: add get_rx_ring_count callback to
optimize RX ring queries") added specific support for GRXRINGS callback,
simplifying .get_rxnfc.
Remove the handling of GRXRINGS in .get_rxnfc() by moving it to the new
.get_rx_ring_count().
This simplifies the RX ring count retrieval and aligns i40e with the new
ethtool API for querying RX ring parameters.
Signed-off-by: Breno Leitao <leitao@debian.org>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 86c72596617a..64d0797f5f5e 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -3521,6 +3521,20 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf,
return 0;
}
+/**
+ * i40e_get_rx_ring_count - get RX ring count
+ * @netdev: network interface device structure
+ *
+ * Returns the number of RX rings.
+ **/
+static u32 i40e_get_rx_ring_count(struct net_device *netdev)
+{
+ struct i40e_netdev_priv *np = netdev_priv(netdev);
+ struct i40e_vsi *vsi = np->vsi;
+
+ return vsi->rss_size;
+}
+
/**
* i40e_get_rxnfc - command to get RX flow classification rules
* @netdev: network interface device structure
@@ -3538,10 +3552,6 @@ static int i40e_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
int ret = -EOPNOTSUPP;
switch (cmd->cmd) {
- case ETHTOOL_GRXRINGS:
- cmd->data = vsi->rss_size;
- ret = 0;
- break;
case ETHTOOL_GRXCLSRLCNT:
cmd->rule_cnt = pf->fdir_pf_active_filters;
/* report total rule count */
@@ -5819,6 +5829,7 @@ static const struct ethtool_ops i40e_ethtool_ops = {
.set_msglevel = i40e_set_msglevel,
.get_rxnfc = i40e_get_rxnfc,
.set_rxnfc = i40e_set_rxnfc,
+ .get_rx_ring_count = i40e_get_rx_ring_count,
.self_test = i40e_diag_test,
.get_strings = i40e_get_strings,
.get_eee = i40e_get_eee,
--
2.47.3
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
> Breno Leitao
> Sent: Monday, November 24, 2025 7:19 PM
> To: Lobakin, Aleksander <aleksander.lobakin@intel.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>; David
> S. Miller <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>; Jakub
> Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>
> Cc: michal.swiatkowski@linux.intel.com; michal.kubiak@intel.com;
> Fijalkowski, Maciej <maciej.fijalkowski@intel.com>; intel-wired-
> lan@lists.osuosl.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org;
> kernel-team@meta.com; Breno Leitao <leitao@debian.org>
> Subject: [Intel-wired-lan] [PATCH net-next 1/8] i40e: extract GRXRINGS from
> .get_rxnfc
>
> Commit 84eaf4359c36 ("net: ethtool: add get_rx_ring_count callback to
> optimize RX ring queries") added specific support for GRXRINGS callback,
> simplifying .get_rxnfc.
>
> Remove the handling of GRXRINGS in .get_rxnfc() by moving it to the new
> .get_rx_ring_count().
>
> This simplifies the RX ring count retrieval and aligns i40e with the new
> ethtool API for querying RX ring parameters.
>
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 19 +++++++++++++++----
> 1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> index 86c72596617a..64d0797f5f5e 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> @@ -3521,6 +3521,20 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf
> *pf,
> return 0;
> }
>
> +/**
> + * i40e_get_rx_ring_count - get RX ring count
> + * @netdev: network interface device structure
> + *
> + * Returns the number of RX rings.
> + **/
> +static u32 i40e_get_rx_ring_count(struct net_device *netdev) {
> + struct i40e_netdev_priv *np = netdev_priv(netdev);
> + struct i40e_vsi *vsi = np->vsi;
> +
> + return vsi->rss_size;
> +}
> +
> /**
> * i40e_get_rxnfc - command to get RX flow classification rules
> * @netdev: network interface device structure @@ -3538,10 +3552,6 @@
> static int i40e_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc
> *cmd,
> int ret = -EOPNOTSUPP;
>
> switch (cmd->cmd) {
> - case ETHTOOL_GRXRINGS:
> - cmd->data = vsi->rss_size;
> - ret = 0;
> - break;
> case ETHTOOL_GRXCLSRLCNT:
> cmd->rule_cnt = pf->fdir_pf_active_filters;
> /* report total rule count */
> @@ -5819,6 +5829,7 @@ static const struct ethtool_ops i40e_ethtool_ops = {
> .set_msglevel = i40e_set_msglevel,
> .get_rxnfc = i40e_get_rxnfc,
> .set_rxnfc = i40e_set_rxnfc,
> + .get_rx_ring_count = i40e_get_rx_ring_count,
> .self_test = i40e_diag_test,
> .get_strings = i40e_get_strings,
> .get_eee = i40e_get_eee,
>
> --
> 2.47.3
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
On Mon, 24 Nov 2025 10:19:05 -0800 Breno Leitao wrote: > + * Returns the number of RX rings. I suspect you used this format because the rest of the driver does, but let's avoid adding new kdoc warnings. I think Andy is trying to clean up the "Returns" vs "Return:" in Intel drivers.. drivers/net/ethernet/intel/i40e/i40e_ethtool.c:3530 No description found for return value of 'i40e_get_rx_ring_count' (similar warnings to first 4 patches of the series) -- pw-bot: cr
Hello Jakub, On Mon, Nov 24, 2025 at 07:48:23PM -0800, Jakub Kicinski wrote: > On Mon, 24 Nov 2025 10:19:05 -0800 Breno Leitao wrote: > > + * Returns the number of RX rings. > > I suspect you used this format because the rest of the driver does, Correct. I have jsut followed the other kdoc format in the code. > but let's avoid adding new kdoc warnings. I think Andy is trying > to clean up the "Returns" vs "Return:" in Intel drivers.. > > drivers/net/ethernet/intel/i40e/i40e_ethtool.c:3530 No description found for return value of 'i40e_get_rx_ring_count' > > (similar warnings to first 4 patches of the series) Ack! I will get them fixed. Thanks for the review, --breno
© 2016 - 2025 Red Hat, Inc.