On Wed, May 8, 2024 at 7:09 AM Markus Elfring <Markus.Elfring@xxxxxx> wrote: > > … > > +++ b/drivers/net/ethernet/google/gve/gve_ethtool.c > … > > +static int gve_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd, u32 *rule_locs) > > +{ > > + struct gve_priv *priv = netdev_priv(netdev); > > + int err = 0; > > + > > + dev_hold(netdev); > > + rtnl_unlock(); > … > > +out: > > + rtnl_lock(); > > + dev_put(netdev); > > + return err; > > +} > … > > How do you think about to increase the application of scope-based resource management > at such source code places? > Is the suggestion to combine dev_hold(netdev) together with rtnl_unlock()? If so, I think there might be different usages for using rtnl_unlock. For example, some drivers will call rtnl_unlock after dev_close(netdev). Please correct me if I'm wrong. Thank you! > Regards, > Markus