> > - 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