diff options
author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-09-03 10:26:01 +0000 |
---|---|---|
committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-09-03 10:26:01 +0000 |
commit | cfcb04f63cef7513c27777f3250ff833efd1146a (patch) | |
tree | f84059f58f6e1c5a561661ec2afdc1acb5be30e6 /target/linux | |
parent | 1f8154c1de02def9219e3869430e0b690a0493e8 (diff) |
[mcs814x] nuport-mac: disable MAC RX and TX during interface close
Fixes sporadic crashes while reconfiguring the network interface.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33312 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c b/target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c index b14019d57..4a4208604 100644 --- a/target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c +++ b/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); |