Thread (7 messages) 7 messages, 4 authors, 2019-10-16

Re: lan78xx and phy_state_machine

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help