net: lpc_eth: Fix crash on ip link up
When a link is already up, the following sequence makes the kernel block completely: ip link set dev eth0 down ip link set dev eth0 up This is because on suspended phy, the following lines __lpc_eth_reset(pldat); __lpc_eth_init(pldat); make the LPC ethernet core block (see LPC32x0 manual). The PHY needs to be (re-)activated low-level first. Signed-off-by: Roland Stigge <stigge@antcom.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									0486a063b1
								
							
						
					
					
						commit
						aff88a0695
					
				| @ -1220,6 +1220,9 @@ static int lpc_eth_open(struct net_device *ndev) | ||||
| 
 | ||||
| 	__lpc_eth_clock_enable(pldat, true); | ||||
| 
 | ||||
| 	/* Suspended PHY makes LPC ethernet core block, so resume now */ | ||||
| 	phy_resume(pldat->phy_dev); | ||||
| 
 | ||||
| 	/* Reset and initialize */ | ||||
| 	__lpc_eth_reset(pldat); | ||||
| 	__lpc_eth_init(pldat); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user