> The basic rules here should be, if the MDIO bus is registered, it is > usable. There are things like PHY statistics, HWMON temperature > sensors, etc, DSA switches, all which have a life cycle separate to > the interface being up. [Goes and looks at the code] Yes, this is runtime PM which is broken. sh_mdio_init() needs to wrap the mdp->mii_bus->read and mdp->mii_bus->write calls with calls to pm_runtime_get_sync(&mdp->pdev->dev); and pm_runtime_put_sync(&mdp->pdev->dev); The KSZ8041RNLI supports statistics, which ethtool --phy-stats can read, and these will also going to cause problems. Andrew