Hi Sergey, > -----Original Message----- > From: Sergey Shtylyov <s.shtylyov@xxxxxx> > Sent: Friday, February 9, 2024 8:27 PM > Subject: Re: [PATCH net-next v2 4/5] net: ravb: Do not apply RX checksum > settings to hardware if the interface is down > > On 2/9/24 8:04 PM, Claudiu wrote: > > > From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> > > > > Do not apply the RX checksum settings to hardware if the interface is > down. > > In case runtime PM is enabled, and while the interface is down, the IP > > will be in reset mode (as for some platforms disabling the clocks will > > switch the IP to reset mode, which will lead to losing register > > contents) and applying settings in reset mode is not an option. > > Instead, cache the RX checksum settings and apply them in ravb_open() > through ravb_emac_init(). > > This has been solved by introducing pm_runtime_active() check. The > > device runtime PM usage counter has been incremented to avoid > > disabling the device clocks while the check is in progress (if any). > > > > Commit prepares for the addition of runtime PM. > > > > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> > > Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx> This will do the same job, without code duplication right? static int ravb_set_features(struct net_device *ndev, netdev_features_t features) { struct ravb_private *priv = netdev_priv(ndev); struct device *dev = &priv->pdev->dev; const struct ravb_hw_info *info = priv->info; pm_runtime_get_noresume(dev); if (!pm_runtime_active(dev)) { pm_runtime_put_noidle(dev); ndev->features = features; return 0; } return info->set_feature(ndev, features); } Cheers, Biju