[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250104090105.185c08df@kernel.org>
Date: Sat, 4 Jan 2025 09:01:05 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: Shinas Rasheed <srasheed@...vell.com>
Cc: <netdev@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<hgani@...vell.com>, <sedara@...vell.com>, <vimleshk@...vell.com>,
<thaller@...hat.com>, <wizhao@...hat.com>, <kheib@...hat.com>,
<konguyen@...hat.com>, <horms@...nel.org>, <einstein.xue@...axg.com>,
Veerasenareddy Burru <vburru@...vell.com>, Andrew Lunn
<andrew+netdev@...n.ch>, "David S. Miller" <davem@...emloft.net>, Eric
Dumazet <edumazet@...gle.com>, "Paolo Abeni" <pabeni@...hat.com>, Abhijit
Ayarekar <aayarekar@...vell.com>, Satananda Burla <sburla@...vell.com>
Subject: Re: [PATCH net v4 1/4] octeon_ep: fix race conditions in
ndo_get_stats64
On Thu, 2 Jan 2025 03:22:43 -0800 Shinas Rasheed wrote:
> diff --git a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
> index 549436efc204..a452ee3b9a98 100644
> --- a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
> +++ b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
> @@ -995,16 +995,14 @@ static void octep_get_stats64(struct net_device *netdev,
> struct octep_device *oct = netdev_priv(netdev);
> int q;
>
> - if (netif_running(netdev))
> - octep_ctrl_net_get_if_stats(oct,
> - OCTEP_CTRL_NET_INVALID_VFID,
> - &oct->iface_rx_stats,
> - &oct->iface_tx_stats);
> -
> tx_packets = 0;
> tx_bytes = 0;
> rx_packets = 0;
> rx_bytes = 0;
> +
> + if (!netif_running(netdev))
> + return;
So we'll provide no stats when the device is down? That's not correct.
The driver should save the stats from the freed queues (somewhere in
the oct structure). Also please mention how this is synchronized
against netif_running() changing its state, device may get closed while
we're running..
--
pw-bot: cr
Powered by blists - more mailing lists