[PATCH net-next 2/9] net: atlantic: convert to use .get_rx_ring_count

Breno Leitao posted 9 patches 2 weeks, 5 days ago
There is a newer version of this series
[PATCH net-next 2/9] net: atlantic: convert to use .get_rx_ring_count
Posted by Breno Leitao 2 weeks, 5 days ago
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 <leitao@debian.org>
---
 drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
index 6fef47ba0a59b..d8b5491c9cb2b 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
@@ -500,20 +500,22 @@ static int aq_ethtool_set_rss(struct net_device *netdev,
 	return err;
 }
 
+static u32 aq_ethtool_get_rx_ring_count(struct net_device *ndev)
+{
+	struct aq_nic_s *aq_nic = netdev_priv(ndev);
+	struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
+
+	return cfg->vecs;
+}
+
 static int aq_ethtool_get_rxnfc(struct net_device *ndev,
 				struct ethtool_rxnfc *cmd,
 				u32 *rule_locs)
 {
 	struct aq_nic_s *aq_nic = netdev_priv(ndev);
-	struct aq_nic_cfg_s *cfg;
 	int err = 0;
 
-	cfg = aq_nic_get_cfg(aq_nic);
-
 	switch (cmd->cmd) {
-	case ETHTOOL_GRXRINGS:
-		cmd->data = cfg->vecs;
-		break;
 	case ETHTOOL_GRXCLSRLCNT:
 		cmd->rule_cnt = aq_get_rxnfc_count_all_rules(aq_nic);
 		break;
@@ -1072,6 +1074,7 @@ const struct ethtool_ops aq_ethtool_ops = {
 	.set_rxfh            = aq_ethtool_set_rss,
 	.get_rxnfc           = aq_ethtool_get_rxnfc,
 	.set_rxnfc           = aq_ethtool_set_rxnfc,
+	.get_rx_ring_count   = aq_ethtool_get_rx_ring_count,
 	.get_msglevel        = aq_get_msg_level,
 	.set_msglevel        = aq_set_msg_level,
 	.get_sset_count      = aq_ethtool_get_sset_count,

-- 
2.47.3
Re: [PATCH net-next 2/9] net: atlantic: convert to use .get_rx_ring_count
Posted by Creeley, Brett 2 weeks, 5 days ago

On 1/21/2026 7:54 AM, Breno Leitao wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> 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 <leitao@debian.org>
> ---
>   drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | 15 +++++++++------
>   1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> index 6fef47ba0a59b..d8b5491c9cb2b 100644
> --- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> @@ -500,20 +500,22 @@ static int aq_ethtool_set_rss(struct net_device *netdev,
>          return err;
>   }
>
> +static u32 aq_ethtool_get_rx_ring_count(struct net_device *ndev)
> +{
> +       struct aq_nic_s *aq_nic = netdev_priv(ndev);
> +       struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
> +
> +       return cfg->vecs;
> +}
> +

Tiny nit, but RCT ordering is not maintained.

Thanks,

Brett
>   static int aq_ethtool_get_rxnfc(struct net_device *ndev,
>                                  struct ethtool_rxnfc *cmd,
>                                  u32 *rule_locs)
>   {
>          struct aq_nic_s *aq_nic = netdev_priv(ndev);
> -       struct aq_nic_cfg_s *cfg;
>          int err = 0;
>
> -       cfg = aq_nic_get_cfg(aq_nic);
> -
>          switch (cmd->cmd) {
> -       case ETHTOOL_GRXRINGS:
> -               cmd->data = cfg->vecs;
> -               break;
>          case ETHTOOL_GRXCLSRLCNT:
>                  cmd->rule_cnt = aq_get_rxnfc_count_all_rules(aq_nic);
>                  break;
> @@ -1072,6 +1074,7 @@ const struct ethtool_ops aq_ethtool_ops = {
>          .set_rxfh            = aq_ethtool_set_rss,
>          .get_rxnfc           = aq_ethtool_get_rxnfc,
>          .set_rxnfc           = aq_ethtool_set_rxnfc,
> +       .get_rx_ring_count   = aq_ethtool_get_rx_ring_count,
>          .get_msglevel        = aq_get_msg_level,
>          .set_msglevel        = aq_set_msg_level,
>          .get_sset_count      = aq_ethtool_get_sset_count,
>
> --
> 2.47.3
>
Re: [PATCH net-next 2/9] net: atlantic: convert to use .get_rx_ring_count
Posted by Breno Leitao 2 weeks, 4 days ago
Hello Brett,

On Wed, Jan 21, 2026 at 08:49:23AM -0800, Creeley, Brett wrote:
> On 1/21/2026 7:54 AM, Breno Leitao wrote:
> > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
> > 
> > 
> > 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 <leitao@debian.org>
> > ---
> >   drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | 15 +++++++++------
> >   1 file changed, 9 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> > index 6fef47ba0a59b..d8b5491c9cb2b 100644
> > --- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> > +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
> > @@ -500,20 +500,22 @@ static int aq_ethtool_set_rss(struct net_device *netdev,
> >          return err;
> >   }
> > 
> > +static u32 aq_ethtool_get_rx_ring_count(struct net_device *ndev)
> > +{
> > +       struct aq_nic_s *aq_nic = netdev_priv(ndev);
> > +       struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
> > +
> > +       return cfg->vecs;
> > +}
> > +
> 
> Tiny nit, but RCT ordering is not maintained.

Damn, I will re-spin. Thanks for catching it.

--breno
--
pw-bot: cr