> 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