Skip to content

Commit e48766e

Browse files
committed
Merge branch 'net-broadcom-migrate-to-get_rx_ring_count-ethtool-callback'
Breno Leitao says: ==================== net: broadcom: migrate to .get_rx_ring_count() ethtool callback This series migrates Broadcom ethernet drivers to use the new .get_rx_ring_count() ethtool callback introduced in commit 84eaf43 ("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. ==================== Link: https://patch.msgid.link/20251127-grxrings_broadcom-v1-0-b0b182864950@debian.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents 2ce992a + 335d78c commit e48766e

2 files changed

Lines changed: 16 additions & 7 deletions

File tree

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1770,17 +1770,20 @@ static int bnxt_set_rxfh_fields(struct net_device *dev,
17701770
return rc;
17711771
}
17721772

1773+
static u32 bnxt_get_rx_ring_count(struct net_device *dev)
1774+
{
1775+
struct bnxt *bp = netdev_priv(dev);
1776+
1777+
return bp->rx_nr_rings;
1778+
}
1779+
17731780
static int bnxt_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
17741781
u32 *rule_locs)
17751782
{
17761783
struct bnxt *bp = netdev_priv(dev);
17771784
int rc = 0;
17781785

17791786
switch (cmd->cmd) {
1780-
case ETHTOOL_GRXRINGS:
1781-
cmd->data = bp->rx_nr_rings;
1782-
break;
1783-
17841787
case ETHTOOL_GRXCLSRLCNT:
17851788
cmd->rule_cnt = bp->ntp_fltr_count;
17861789
cmd->data = bp->max_fltr | RX_CLS_LOC_SPECIAL;
@@ -5616,6 +5619,7 @@ const struct ethtool_ops bnxt_ethtool_ops = {
56165619
.set_channels = bnxt_set_channels,
56175620
.get_rxnfc = bnxt_get_rxnfc,
56185621
.set_rxnfc = bnxt_set_rxnfc,
5622+
.get_rx_ring_count = bnxt_get_rx_ring_count,
56195623
.get_rxfh_indir_size = bnxt_get_rxfh_indir_size,
56205624
.get_rxfh_key_size = bnxt_get_rxfh_key_size,
56215625
.get_rxfh = bnxt_get_rxfh,

drivers/net/ethernet/broadcom/genet/bcmgenet.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1640,6 +1640,13 @@ static int bcmgenet_get_num_flows(struct bcmgenet_priv *priv)
16401640
return res;
16411641
}
16421642

1643+
static u32 bcmgenet_get_rx_ring_count(struct net_device *dev)
1644+
{
1645+
struct bcmgenet_priv *priv = netdev_priv(dev);
1646+
1647+
return priv->hw_params->rx_queues ?: 1;
1648+
}
1649+
16431650
static int bcmgenet_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
16441651
u32 *rule_locs)
16451652
{
@@ -1649,9 +1656,6 @@ static int bcmgenet_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
16491656
int i = 0;
16501657

16511658
switch (cmd->cmd) {
1652-
case ETHTOOL_GRXRINGS:
1653-
cmd->data = priv->hw_params->rx_queues ?: 1;
1654-
break;
16551659
case ETHTOOL_GRXCLSRLCNT:
16561660
cmd->rule_cnt = bcmgenet_get_num_flows(priv);
16571661
cmd->data = MAX_NUM_OF_FS_RULES | RX_CLS_LOC_SPECIAL;
@@ -1700,6 +1704,7 @@ static const struct ethtool_ops bcmgenet_ethtool_ops = {
17001704
.get_ts_info = ethtool_op_get_ts_info,
17011705
.get_rxnfc = bcmgenet_get_rxnfc,
17021706
.set_rxnfc = bcmgenet_set_rxnfc,
1707+
.get_rx_ring_count = bcmgenet_get_rx_ring_count,
17031708
.get_pauseparam = bcmgenet_get_pauseparam,
17041709
.set_pauseparam = bcmgenet_set_pauseparam,
17051710
};

0 commit comments

Comments
 (0)