Răsfoiți Sursa

nuport-mac: disable MAC RX and TX during interface close

Fixes sporadic crashes while reconfiguring the network interface.

SVN-Revision: 33312
Florian Fainelli 13 ani în urmă
părinte
comite
e88e20d975

+ 5 - 0
target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c

@@ -829,9 +829,14 @@ out_emac_clk:
 
 static int nuport_mac_close(struct net_device *dev)
 {
+	u32 reg;
 	struct nuport_mac_priv *priv = netdev_priv(dev);
 
 	spin_lock_irq(&priv->lock);
+	reg = nuport_mac_readl(CTRL_REG);
+	reg &= ~(RX_ENABLE | TX_ENABLE);
+	nuport_mac_writel(reg, CTRL_REG);
+
 	napi_disable(&priv->napi);
 	netif_stop_queue(dev);