> --- a/drivers/net/phy/phy_device.c > +++ b/drivers/net/phy/phy_device.c > @@ -283,8 +283,11 @@ static __maybe_unused int mdio_bus_phy_suspend(struct device *dev) > * may call phy routines that try to grab the same lock, and that may > * lead to a deadlock. > */ > - if (phydev->attached_dev && phydev->adjust_link) > + if (phydev->attached_dev && phydev->adjust_link) { > + if (phy_interrupt_is_valid(phydev)) > + synchronize_irq(phydev->irq); > phy_stop_machine(phydev); > + } What is this hunk trying to achieve? As far as i know, interrupts have not been disabled. So as soon as the call to synchronize_irq() finishes, could well be another interrupt happens. Andrew