Re: [PATCH net] net: phy: mscc: fix deadlock in phy_ethtool_{get,set}_wol()

From: Andrew Lunn
Date: Tue Mar 14 2023 - 12:53:12 EST


On Tue, Mar 14, 2023 at 06:45:47PM +0200, Vladimir Oltean wrote:
> On Tue, Mar 14, 2023 at 05:31:45PM +0100, Andrew Lunn wrote:
> > [Goes and checks to see if the same problem exists for other PHY drivers]
>
> Here's a call path I am not sure how to interpret (but doesn't look like
> there's anything preventing it).
>
> linkstate_get_sqi()
> -> mutex_lock(&phydev->lock)
> -> phydev->drv->get_sqi(phydev);
> -> lan87xx_get_sqi()
> -> access_ereg()
> -> lan937x_dsp_workaround()
> -> mutex_lock(&phydev->lock);
> -> mutex_unlock(&phydev->lock);
> -> mutex_unlock(&phydev->lock)

I noticed access_ereg() as well. But i don't think there have been any
recent changes there. Lots loop in the Microchip developers.

Andrew