[mcs814x] nuport-mac: disable MAC RX and TX during interface close
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 3 Sep 2012 10:26:01 +0000 (10:26 +0000)
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 3 Sep 2012 10:26:01 +0000 (10:26 +0000)
Fixes sporadic crashes while reconfiguring the network interface.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33312 3c298f89-4303-0410-b956-a3cf2f4a3e73

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

index b14019d..4a42086 100644 (file)
@@ -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);