> > I suggest you look at the call sequences. When does phy_stop() and > > phy_disconnect() get called? phylib has a work queue which runs once > > per second to poll the PHY and get its status. That polling is > > stopped > > by calling phy_stop(). It is also assumed you can still talk to the > > PHY while performing phy_stop(). > > > > > > I was just trying to remember the details from when I looked at this > driver. IIRC, that's broadly the conclusion I came to and couldn't > really see a way around it. Access to the phy was being lost before > phy_stop() was called. This i don't really understand. This is a reboot(1), so a controlled shutdown. Why is access being lost to the PHY? A hot unplug you cannot do anything about, but this is not the case here. Andrew