On Wed, Feb 28, 2018 at 05:27:34PM +0100, Greg KH wrote: > On Wed, Feb 28, 2018 at 04:43:48PM +0100, Andrew Lunn wrote: > > > When a PHY has the BMCR_PDOWN bit set, it may decide to ignore writes > > > to other registers, or reset the registers to power-on defaults. > > > Micrel PHYs do this for their interrupt registers. > > > > > > The current structure of phylib tries to enable interrupts before > > > resuming (and releasing) the BMCR_PDOWN bit. This fails, causing > > > Micrel PHYs to stop working after a suspend/resume sequence if they > > > are using interrupts. > > > > > > Fix this by ensuring that the PHY driver resume methods do not take > > > the phydev->lock mutex themselves, but the callers of phy_resume() > > > take that lock. This then allows us to move the call to phy_resume() > > > before we enable interrupts in phy_start(). > > > > Hi Greg > > > > This patch introduces some issues. You don't want this patch on its > > own, you want it in combination with: > > > > Fixes: 9c2c2e62df3f ("net: phy: Restore phy_resume() locking assumption") > > > > Which went into David Millers net tree yesterday and should be making > > its way towards stable. > > > > I suggest you hold off on this patch, until you can do both at the > > same time. > > Thanks for letting me know, I've now dropped this. And now both are queued up for 4.14.y, thanks. greg k-h