[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7ea4c3fe-a911-4161-af13-7f1d55def7e3@tuxon.dev>
Date: Mon, 27 Nov 2023 08:11:17 +0200
From: claudiu beznea <claudiu.beznea@...on.dev>
To: Andrew Lunn <andrew@...n.ch>
Cc: nicolas.ferre@...rochip.com, davem@...emloft.net,
edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com,
hkallweit1@...il.com, linux@...linux.org.uk, jgarzik@...ox.com,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] net: macb: Unregister nedev before MDIO bus in remove
On 26.11.2023 19:13, Andrew Lunn wrote:
>> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
>> index cebae0f418f2..73d041af3de1 100644
>> --- a/drivers/net/ethernet/cadence/macb_main.c
>> +++ b/drivers/net/ethernet/cadence/macb_main.c
>> @@ -5165,11 +5165,11 @@ static void macb_remove(struct platform_device *pdev)
>>
>> if (dev) {
>> bp = netdev_priv(dev);
>> + unregister_netdev(dev);
>> phy_exit(bp->sgmii_phy);
>> mdiobus_unregister(bp->mii_bus);
>> mdiobus_free(bp->mii_bus);
>>
>> - unregister_netdev(dev);
>> tasklet_kill(&bp->hresp_err_tasklet);
>
>
> I don't know this driver...
>
> What does this tasklet do?
It handles bus errors that my happens while DMA fetches data from system
memory. It re-initializes the TX/RX, DMA buffers, clear interrupts,
stop/start all tx queues.
> Is it safe for it to run after the netdev
> is unregistered, and the PHY and the mdio bus is gone?
Not really, as it accesses netdev specific data.
> Maybe this
> tasklet_kill should be after the interrupt is disabled, but before the
> netdev is unregistered?
That would be a better place, indeed.
Thank you,
Claudiu Beznea
>
> If you have one bug here, there might be others.
>
> Andrew
Powered by blists - more mailing lists