Subject: Re: [PATCH net-next] net: phy: Add driver for Motorcomm yt8531 gigabit ethernet phy

From: Andrew Lunn <[email-masked]>
Date: Wed, 30 Nov 2022 18:10:42 +0100

On Wed, Nov 30, 2022 at 09:55:50AM +0000, Russell King (Oracle) wrote:
> On Wed, Nov 30, 2022 at 05:49:28PM +0800, Frank wrote:
> > +/**
> > + * yt8531_set_wol() - turn wake-on-lan on or off
> > + * @phydev: a pointer to a &struct phy_device
> > + * @wol: a pointer to a &struct ethtool_wolinfo
> > + *
> > + * NOTE: YTPHY_WOL_CONFIG_REG, YTPHY_WOL_MACADDR2_REG, YTPHY_WOL_MACADDR1_REG
> > + * and YTPHY_WOL_MACADDR0_REG are common ext reg.
> > + *
> > + * returns 0 or negative errno code
> > + */
> > +static int yt8531_set_wol(struct phy_device *phydev,
> > +			  struct ethtool_wolinfo *wol)
> > +{
> 
> So this is called from the .set_wol method directly, and won't have the
> MDIO bus lock taken...

Hi Frank

This is not the first time Russell has pointed out your locking is
wrong.

How about adding a check in functions which should be called with the
lock taken really do have the lock taken?

ASSERT_RTNL() but for an MDIO bus.

	Andrew