Re: [PATCH net-next] sh_eth: remove open coded netif_running()

From: Sergey Shtylyov
Date: Wed Mar 22 2023 - 16:54:58 EST


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