Re: lan78xx and phy_state_machine
From: Andrew Lunn <andrew@lunn.ch>
Date: 2019-10-16 15:37:05
Also in:
linux-arm-kernel
From: Andrew Lunn <andrew@lunn.ch>
Date: 2019-10-16 15:37:05
Also in:
linux-arm-kernel
quoted
- lan78xx_phy_init() (incl. the call to phy_connect_direct()) is called after register_netdev(). This may cause races.That isn't a problem. We have lots of network device drivers that do this - in their open() function.
Hi Russell Actually, here is it. lan7801_phy_init() finds the PHY device and connects it to the MAC. lan78xx_open() calls phy_start(), with the assumption lan7801_phy_init() has been called. But the stack trace just provided shows this assumption is wrong. As soon a register_netdev() is called, the kernel auto configuration is kicking in and opening the device. lan78xx_phy_init() needs to happen before register_netdev(), or inside lan78xx_open(). Andrew