On Thu, 2018-04-19 at 11:32 -0700, Florian Fainelli wrote:
+Others who reported the same problem On 04/19/2018 11:24 AM, Naresh Kamboju wrote:
On 19 April 2018 at 21:41, Leonard Crestez leonard.crestez@nxp.com wrote:
Looking at this dump I'm guessing that phydev->priv is NULL at the start of kszphy_config_reset and this really shouldn't be happening.
The phydev->priv field is initialized by kszphy_probe but your particular phy (KSZ9031) in linux-4.9.y does not seem to have .probe = kszphy_probe assigned in the struct phy_driver ksphy_driver array.
In upstream this was added by commit bfe72442578b ("net: phy: micrel: fix crash when statistic requested for KSZ9031 phy"). The message for that patch claims to fix a kernel crash on this command:
ethtool --phy-statistics eth0
Looking at the code this issue should affect linux-4.9.y on your board. Naresh: can you please check?
After reverting the patch i have run this command and kernel oops showed up. ethtool --phy-statistics eth0
PC is at kszphy_get_stats+0x74/0xa8
ethtool --phy-statistics eth0 crashed on x15
Chris proposed the following patch, which has not been formally submitted yet:
Meanwhile, Greg seems to have reverted the offending patch, so we should be good with 4.9.95.
I don't object to reverting my patch from linux-4.14.y but it seems all the affected hardware would also be affected by the crash from ethtool --phy-statistics eth0. Adding bfe72442578b to stable would be great because it fixes more than the patch in the title.
In the other thread there is a mention that "Micrel KSZ8795", "Micrel KSZ886X Switch", "Micrel KSZ8061", and "Micrel KS8737" might still have problems after bfe72442578b. Is this because they have kszphy_config_init but not kszphy_probe? All versions of kszphy_config_init seem to check for a NULL priv.
-- Regards, Leonard