[PATCH net-next] net: ixgbe: convert to use .get_rx_ring_count

Breno Leitao posted 1 patch 2 months, 3 weeks ago
There is a newer version of this series
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
[PATCH net-next] net: ixgbe: convert to use .get_rx_ring_count
Posted by Breno Leitao 2 months, 3 weeks ago
Convert the ixgbe driver to use the new .get_rx_ring_count ethtool
operation for handling ETHTOOL_GRXRINGS command. This simplifies the
code by extracting the ring count logic into a dedicated callback.

The new callback provides the same functionality in a more direct way,
following the ongoing ethtool API modernization.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 2d660e9edb80..2ad81f687a84 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -2805,6 +2805,14 @@ static int ixgbe_rss_indir_tbl_max(struct ixgbe_adapter *adapter)
 		return 64;
 }
 
+static u32 ixgbe_get_rx_ring_count(struct net_device *dev)
+{
+	struct ixgbe_adapter *adapter = ixgbe_from_netdev(dev);
+
+	return min_t(u32, adapter->num_rx_queues,
+		     ixgbe_rss_indir_tbl_max(adapter));
+}
+
 static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 			   u32 *rule_locs)
 {
@@ -2812,11 +2820,6 @@ static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 	int ret = -EOPNOTSUPP;
 
 	switch (cmd->cmd) {
-	case ETHTOOL_GRXRINGS:
-		cmd->data = min_t(int, adapter->num_rx_queues,
-				  ixgbe_rss_indir_tbl_max(adapter));
-		ret = 0;
-		break;
 	case ETHTOOL_GRXCLSRLCNT:
 		cmd->rule_cnt = adapter->fdir_filter_count;
 		ret = 0;
@@ -3743,6 +3746,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops = {
 	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
 	.get_coalesce           = ixgbe_get_coalesce,
 	.set_coalesce           = ixgbe_set_coalesce,
+	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
 	.get_rxnfc		= ixgbe_get_rxnfc,
 	.set_rxnfc		= ixgbe_set_rxnfc,
 	.get_rxfh_indir_size	= ixgbe_rss_indir_size,
@@ -3791,6 +3795,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops_e610 = {
 	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
 	.get_coalesce           = ixgbe_get_coalesce,
 	.set_coalesce           = ixgbe_set_coalesce,
+	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
 	.get_rxnfc		= ixgbe_get_rxnfc,
 	.set_rxnfc		= ixgbe_set_rxnfc,
 	.get_rxfh_indir_size	= ixgbe_rss_indir_size,

---
base-commit: bde974ef62569a7da12aa71d182a760cd6223c36
change-id: 20251112-ixgbe_gxrings-61c6f71d712b

Best regards,
--  
Breno Leitao <leitao@debian.org>
RE: [Intel-wired-lan] [PATCH net-next] net: ixgbe: convert to use .get_rx_ring_count
Posted by Loktionov, Aleksandr 2 months, 3 weeks ago

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Breno Leitao
> Sent: Wednesday, November 12, 2025 11:23 AM
> To: 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: 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] net: ixgbe: convert to use
> .get_rx_ring_count
> 
> Convert the ixgbe driver to use the new .get_rx_ring_count ethtool
> operation for handling ETHTOOL_GRXRINGS command. This simplifies the
> code by extracting the ring count logic into a dedicated callback.
> 
> The new callback provides the same functionality in a more direct way,
> following the ongoing ethtool API modernization.
> 
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> index 2d660e9edb80..2ad81f687a84 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> @@ -2805,6 +2805,14 @@ static int ixgbe_rss_indir_tbl_max(struct
> ixgbe_adapter *adapter)
>  		return 64;
>  }
> 
> +static u32 ixgbe_get_rx_ring_count(struct net_device *dev) {
> +	struct ixgbe_adapter *adapter = ixgbe_from_netdev(dev);
> +
> +	return min_t(u32, adapter->num_rx_queues,
> +		     ixgbe_rss_indir_tbl_max(adapter));
> +}
> +
>  static int ixgbe_get_rxnfc(struct net_device *dev, struct
> ethtool_rxnfc *cmd,
>  			   u32 *rule_locs)
>  {
> @@ -2812,11 +2820,6 @@ static int ixgbe_get_rxnfc(struct net_device
> *dev, struct ethtool_rxnfc *cmd,
>  	int ret = -EOPNOTSUPP;
> 
>  	switch (cmd->cmd) {
> -	case ETHTOOL_GRXRINGS:
> -		cmd->data = min_t(int, adapter->num_rx_queues,
> -				  ixgbe_rss_indir_tbl_max(adapter));
> -		ret = 0;
> -		break;
>  	case ETHTOOL_GRXCLSRLCNT:
>  		cmd->rule_cnt = adapter->fdir_filter_count;
>  		ret = 0;
> @@ -3743,6 +3746,7 @@ static const struct ethtool_ops
> ixgbe_ethtool_ops = {
>  	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
>  	.get_coalesce           = ixgbe_get_coalesce,
>  	.set_coalesce           = ixgbe_set_coalesce,
> +	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
>  	.get_rxnfc		= ixgbe_get_rxnfc,
>  	.set_rxnfc		= ixgbe_set_rxnfc,
>  	.get_rxfh_indir_size	= ixgbe_rss_indir_size,
> @@ -3791,6 +3795,7 @@ static const struct ethtool_ops
> ixgbe_ethtool_ops_e610 = {
>  	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
>  	.get_coalesce           = ixgbe_get_coalesce,
>  	.set_coalesce           = ixgbe_set_coalesce,
> +	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
>  	.get_rxnfc		= ixgbe_get_rxnfc,
>  	.set_rxnfc		= ixgbe_set_rxnfc,
>  	.get_rxfh_indir_size	= ixgbe_rss_indir_size,
> 
> ---
> base-commit: bde974ef62569a7da12aa71d182a760cd6223c36
> change-id: 20251112-ixgbe_gxrings-61c6f71d712b
> 
> Best regards,
> --
> Breno Leitao <leitao@debian.org>


Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Re: [Intel-wired-lan] [PATCH net-next] net: ixgbe: convert to use .get_rx_ring_count
Posted by Paul Menzel 2 months, 3 weeks ago
Dear Breno,


Thank you for your patch.

Am 12.11.25 um 11:23 schrieb Breno Leitao:
> Convert the ixgbe driver to use the new .get_rx_ring_count ethtool
> operation for handling ETHTOOL_GRXRINGS command. This simplifies the
> code by extracting the ring count logic into a dedicated callback.
> 
> The new callback provides the same functionality in a more direct way,
> following the ongoing ethtool API modernization.

Maybe add a paragraph how you tested this.

> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
>   drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 15 ++++++++++-----
>   1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> index 2d660e9edb80..2ad81f687a84 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> @@ -2805,6 +2805,14 @@ static int ixgbe_rss_indir_tbl_max(struct ixgbe_adapter *adapter)
>   		return 64;
>   }
>   
> +static u32 ixgbe_get_rx_ring_count(struct net_device *dev)
> +{
> +	struct ixgbe_adapter *adapter = ixgbe_from_netdev(dev);
> +
> +	return min_t(u32, adapter->num_rx_queues,
> +		     ixgbe_rss_indir_tbl_max(adapter));
> +}
> +
>   static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
>   			   u32 *rule_locs)
>   {
> @@ -2812,11 +2820,6 @@ static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
>   	int ret = -EOPNOTSUPP;
>   
>   	switch (cmd->cmd) {
> -	case ETHTOOL_GRXRINGS:
> -		cmd->data = min_t(int, adapter->num_rx_queues,
> -				  ixgbe_rss_indir_tbl_max(adapter));
> -		ret = 0;
> -		break;
>   	case ETHTOOL_GRXCLSRLCNT:
>   		cmd->rule_cnt = adapter->fdir_filter_count;
>   		ret = 0;
> @@ -3743,6 +3746,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops = {
>   	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
>   	.get_coalesce           = ixgbe_get_coalesce,
>   	.set_coalesce           = ixgbe_set_coalesce,
> +	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
>   	.get_rxnfc		= ixgbe_get_rxnfc,
>   	.set_rxnfc		= ixgbe_set_rxnfc,
>   	.get_rxfh_indir_size	= ixgbe_rss_indir_size,
> @@ -3791,6 +3795,7 @@ static const struct ethtool_ops ixgbe_ethtool_ops_e610 = {
>   	.get_ethtool_stats      = ixgbe_get_ethtool_stats,
>   	.get_coalesce           = ixgbe_get_coalesce,
>   	.set_coalesce           = ixgbe_set_coalesce,
> +	.get_rx_ring_count	= ixgbe_get_rx_ring_count,
>   	.get_rxnfc		= ixgbe_get_rxnfc,
>   	.set_rxnfc		= ixgbe_set_rxnfc,
>   	.get_rxfh_indir_size	= ixgbe_rss_indir_size,

Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>


Kind regards,

Paul