[lvc-project] [PATCH net v2 1/3] net: fealnx: fix teardown order in remove

Loktionov, Aleksandr aleksandr.loktionov at intel.com
Fri Oct 2 17:18:32 MSK 2026



> -----Original Message-----
> From: Жамбакиев Радий Рикардинович <r.zhambakiev at prosoftsystems.ru>
> Sent: Friday, October 2, 2026 4:10 PM
> To: Andrew Lunn <andrew+netdev at lunn.ch>
> Cc: Жамбакиев Радий Рикардинович <r.zhambakiev at prosoftsystems.ru>;
> David S. Miller <davem at davemloft.net>; Eric Dumazet
> <edumazet at google.com>; Jakub Kicinski <kuba at kernel.org>; Paolo Abeni
> <pabeni at redhat.com>; Michael Grzeschik <mgr at kernel.org>; Jijie Shao
> <shaojijie at huawei.com>; Loktionov, Aleksandr
> <aleksandr.loktionov at intel.com>; Denis Benato
> <benato.denis96 at gmail.com>; Uwe Kleine-König (The Capable Hub)
> <u.kleine-koenig at baylibre.com>; netdev at vger.kernel.org; linux-
> kernel at vger.kernel.org; lvc-project at linuxtesting.org;
> stable at vger.kernel.org
> Subject: [PATCH net v2 1/3] net: fealnx: fix teardown order in remove
> 
> From: Radiy Zhambakiev <r.zhambakiev at prosoftsystems.ru>
> 
> fealnx_remove_one() frees the DMA rings before unregistering the
> netdev, while the interface may still be up, which leaves a window
> where freed memory can be accessed.
> 
> Call unregister_netdev() first so dev_close() stops the Tx/Rx engines,
> deletes the timers, and frees the IRQ before the rings are freed.
> 
> Found by Linux Verification Center (linuxtesting.org)
> 
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Cc: stable at vger.kernel.org
> Signed-off-by: Radiy Zhambakiev <r.zhambakiev at prosoftsystems.ru>
> ---
>  drivers/net/ethernet/fealnx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/fealnx.c
> b/drivers/net/ethernet/fealnx.c index bdc38aac5850..68194c9ef332
> 100644
> --- a/drivers/net/ethernet/fealnx.c
> +++ b/drivers/net/ethernet/fealnx.c
> @@ -682,11 +682,11 @@ static void fealnx_remove_one(struct pci_dev
> *pdev)
>  	if (dev) {
>  		struct netdev_private *np = netdev_priv(dev);
> 
> +		unregister_netdev(dev);
>  		dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np-
> >tx_ring,
>  				  np->tx_ring_dma);
>  		dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, np-
> >rx_ring,
>  				  np->rx_ring_dma);
> -		unregister_netdev(dev);
>  		pci_iounmap(pdev, np->mem);
>  		free_netdev(dev);
>  		pci_release_regions(pdev);
> --
> 2.53.0

[PATCH net v2 1/3] net: fealnx: fix teardown order in remove


More information about the lvc-project mailing list