On 3/21/23 9:58 AM, Wolfram Sang wrote: > It had a purpose back in the days, but today we have a handy helper. Well, the is_opened flag doesn't get set/cleared at the same time as __LINK_STATE_START. I'm not sure they are interchangeable... > Reported-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> > --- > > Based on 6.3-rc3 and tested on a Renesas Lager board (R-Car H2). > > drivers/net/ethernet/renesas/sh_eth.c | 6 +----- > drivers/net/ethernet/renesas/sh_eth.h | 1 - > 2 files changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c > index d8ec729825be..2d9787231099 100644 > --- a/drivers/net/ethernet/renesas/sh_eth.c > +++ b/drivers/net/ethernet/renesas/sh_eth.c > @@ -2441,8 +2441,6 @@ static int sh_eth_open(struct net_device *ndev) > > netif_start_queue(ndev); > > - mdp->is_opened = 1; > - __LINK_STATE_START gets set before the ndo_open() method call, so before the RPM call that enbales the clocks... > return ret; > > out_free_irq: > @@ -2565,7 +2563,7 @@ static struct net_device_stats *sh_eth_get_stats(struct net_device *ndev) > if (mdp->cd->no_tx_cntrs) > return &ndev->stats; > > - if (!mdp->is_opened) > + if (!netif_running(ndev)) > return &ndev->stats; I guess mdp->is_opened is checked here to avoid reading the counter regs when RPM hasn't been called yet to enable the clocks... [...] MBR, Sergey