Re: [PATCH net-next v3 17/19] net: ravb: Return cached statistics if the interface is down

From: Sergey Shtylyov
Date: Mon Jan 08 2024 - 15:23:21 EST


On 1/5/24 11:23 AM, Claudiu wrote:

> From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
>
> Return the cached statistics in case the interface is down. There should be
> no drawback to this, as cached statistics are updated in ravb_close().
>
> The commit prepares the code for the addition of runtime PM support.
>
> Suggested-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
[...]

> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index 76035afd4054..168b6208db37 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -2117,6 +2117,9 @@ static struct net_device_stats *ravb_get_stats(struct net_device *ndev)
> const struct ravb_hw_info *info = priv->info;
> struct net_device_stats *nstats, *stats0, *stats1;
>
> + if (!(ndev->flags & IFF_UP))

Well, I guess it's OK to read the counters in the reset mode... BUT
won't this race with pm_runtime_put_autosuspend() when its call gets added
to ravb_close()?

> + return &ndev->stats;
> +
> nstats = &ndev->stats;
> stats0 = &priv->stats[RAVB_BE];
>
[...]

MBR, Sergey