public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback
@ 2025-11-27 10:17 Breno Leitao
  2025-11-27 10:17 ` [PATCH net-next 1/2] net: bnxt: extract GRXRINGS from .get_rxnfc Breno Leitao
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Breno Leitao @ 2025-11-27 10:17 UTC (permalink / raw)
  To: Michael Chan, Pavan Chebbi, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Doug Berger,
	Florian Fainelli, Broadcom internal kernel review list
  Cc: netdev, linux-kernel, Breno Leitao

This series migrates Broadcom ethernet drivers to use the new
.get_rx_ring_count() ethtool callback introduced in commit 84eaf4359c36
("net: ethtool: add get_rx_ring_count callback to optimize RX ring
queries").

This change simplifies the .get_rxnfc() implementation by
extracting the ETHTOOL_GRXRINGS case handling into a dedicated callback,
making the code cleaner and aligning these drivers with the updated
ethtool API.

The series covers two Broadcom drivers: bnxt and bcmgenet. Each patch
removes the ETHTOOL_GRXRINGS case from the driver's .get_rxnfc() switch
statement and implements the new .get_rx_ring_count() callback that
returns the number of RX rings.

---
Breno Leitao (2):
      net: bnxt: extract GRXRINGS from .get_rxnfc
      net: bcmgenet: extract GRXRINGS from .get_rxnfc

 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 12 ++++++++----
 drivers/net/ethernet/broadcom/genet/bcmgenet.c    | 11 ++++++++---
 2 files changed, 16 insertions(+), 7 deletions(-)
---
base-commit: f93505f35745637b6d94efe8effa97ef26819784
change-id: 20251127-grxrings_broadcom-1a829652276c

Best regards,
--  
Breno Leitao <leitao@debian.org>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH net-next 1/2] net: bnxt: extract GRXRINGS from .get_rxnfc
  2025-11-27 10:17 [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback Breno Leitao
@ 2025-11-27 10:17 ` Breno Leitao
  2025-11-27 10:17 ` [PATCH net-next 2/2] net: bcmgenet: " Breno Leitao
  2025-11-29  4:10 ` [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Breno Leitao @ 2025-11-27 10:17 UTC (permalink / raw)
  To: Michael Chan, Pavan Chebbi, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Doug Berger,
	Florian Fainelli, Broadcom internal kernel review list
  Cc: netdev, linux-kernel, Breno Leitao

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 bnxt with the new
ethtool API for querying RX ring parameters.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index 41686a6f84b5..71f105eae310 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -1764,6 +1764,13 @@ static int bnxt_set_rxfh_fields(struct net_device *dev,
 	return rc;
 }
 
+static u32 bnxt_get_rx_ring_count(struct net_device *dev)
+{
+	struct bnxt *bp = netdev_priv(dev);
+
+	return bp->rx_nr_rings;
+}
+
 static int bnxt_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 			  u32 *rule_locs)
 {
@@ -1771,10 +1778,6 @@ static int bnxt_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 	int rc = 0;
 
 	switch (cmd->cmd) {
-	case ETHTOOL_GRXRINGS:
-		cmd->data = bp->rx_nr_rings;
-		break;
-
 	case ETHTOOL_GRXCLSRLCNT:
 		cmd->rule_cnt = bp->ntp_fltr_count;
 		cmd->data = bp->max_fltr | RX_CLS_LOC_SPECIAL;
@@ -5605,6 +5608,7 @@ const struct ethtool_ops bnxt_ethtool_ops = {
 	.set_channels		= bnxt_set_channels,
 	.get_rxnfc		= bnxt_get_rxnfc,
 	.set_rxnfc		= bnxt_set_rxnfc,
+	.get_rx_ring_count	= bnxt_get_rx_ring_count,
 	.get_rxfh_indir_size    = bnxt_get_rxfh_indir_size,
 	.get_rxfh_key_size      = bnxt_get_rxfh_key_size,
 	.get_rxfh               = bnxt_get_rxfh,

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH net-next 2/2] net: bcmgenet: extract GRXRINGS from .get_rxnfc
  2025-11-27 10:17 [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback Breno Leitao
  2025-11-27 10:17 ` [PATCH net-next 1/2] net: bnxt: extract GRXRINGS from .get_rxnfc Breno Leitao
@ 2025-11-27 10:17 ` Breno Leitao
  2025-11-29  4:10 ` [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Breno Leitao @ 2025-11-27 10:17 UTC (permalink / raw)
  To: Michael Chan, Pavan Chebbi, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Doug Berger,
	Florian Fainelli, Broadcom internal kernel review list
  Cc: netdev, linux-kernel, Breno Leitao

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 bcmgenet with the
new ethtool API for querying RX ring parameters.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index d99ef92feb82..05512aa10c20 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1640,6 +1640,13 @@ static int bcmgenet_get_num_flows(struct bcmgenet_priv *priv)
 	return res;
 }
 
+static u32 bcmgenet_get_rx_ring_count(struct net_device *dev)
+{
+	struct bcmgenet_priv *priv = netdev_priv(dev);
+
+	return priv->hw_params->rx_queues ?: 1;
+}
+
 static int bcmgenet_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 			      u32 *rule_locs)
 {
@@ -1649,9 +1656,6 @@ static int bcmgenet_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
 	int i = 0;
 
 	switch (cmd->cmd) {
-	case ETHTOOL_GRXRINGS:
-		cmd->data = priv->hw_params->rx_queues ?: 1;
-		break;
 	case ETHTOOL_GRXCLSRLCNT:
 		cmd->rule_cnt = bcmgenet_get_num_flows(priv);
 		cmd->data = MAX_NUM_OF_FS_RULES | RX_CLS_LOC_SPECIAL;
@@ -1700,6 +1704,7 @@ static const struct ethtool_ops bcmgenet_ethtool_ops = {
 	.get_ts_info		= ethtool_op_get_ts_info,
 	.get_rxnfc		= bcmgenet_get_rxnfc,
 	.set_rxnfc		= bcmgenet_set_rxnfc,
+	.get_rx_ring_count	= bcmgenet_get_rx_ring_count,
 	.get_pauseparam		= bcmgenet_get_pauseparam,
 	.set_pauseparam		= bcmgenet_set_pauseparam,
 };

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback
  2025-11-27 10:17 [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback Breno Leitao
  2025-11-27 10:17 ` [PATCH net-next 1/2] net: bnxt: extract GRXRINGS from .get_rxnfc Breno Leitao
  2025-11-27 10:17 ` [PATCH net-next 2/2] net: bcmgenet: " Breno Leitao
@ 2025-11-29  4:10 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-11-29  4:10 UTC (permalink / raw)
  To: Breno Leitao
  Cc: michael.chan, pavan.chebbi, andrew+netdev, davem, edumazet, kuba,
	pabeni, opendmb, florian.fainelli, bcm-kernel-feedback-list,
	netdev, linux-kernel

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 27 Nov 2025 02:17:14 -0800 you wrote:
> This series migrates Broadcom ethernet drivers to use the new
> .get_rx_ring_count() ethtool callback introduced in commit 84eaf4359c36
> ("net: ethtool: add get_rx_ring_count callback to optimize RX ring
> queries").
> 
> This change simplifies the .get_rxnfc() implementation by
> extracting the ETHTOOL_GRXRINGS case handling into a dedicated callback,
> making the code cleaner and aligning these drivers with the updated
> ethtool API.
> 
> [...]

Here is the summary with links:
  - [net-next,1/2] net: bnxt: extract GRXRINGS from .get_rxnfc
    https://git.kernel.org/netdev/net-next/c/bba18f3ba7cc
  - [net-next,2/2] net: bcmgenet: extract GRXRINGS from .get_rxnfc
    https://git.kernel.org/netdev/net-next/c/335d78c6161b

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-11-29  4:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-27 10:17 [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback Breno Leitao
2025-11-27 10:17 ` [PATCH net-next 1/2] net: bnxt: extract GRXRINGS from .get_rxnfc Breno Leitao
2025-11-27 10:17 ` [PATCH net-next 2/2] net: bcmgenet: " Breno Leitao
2025-11-29  4:10 ` [PATCH net-next 0/2] net: broadcom: migrate to .get_rx_ring_count() ethtool callback patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox