Taking the ramips ethernet interface down and up again resulted in the
driver not receiving any frames anymore. Fix this by correctly disabling
interrupts in the hw on ifdown.

Signed-off-by: Helmut Schaa <[email protected]>
---
 target/linux/ramips/files/drivers/net/ramips.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/target/linux/ramips/files/drivers/net/ramips.c 
b/target/linux/ramips/files/drivers/net/ramips.c
index a979fe0..fb6e6e8 100644
--- a/target/linux/ramips/files/drivers/net/ramips.c
+++ b/target/linux/ramips/files/drivers/net/ramips.c
@@ -406,6 +406,10 @@ ramips_eth_stop(struct net_device *dev)
        ramips_fe_wr(ramips_fe_rr(RAMIPS_PDMA_GLO_CFG) &
                     ~(RAMIPS_TX_WB_DDONE | RAMIPS_RX_DMA_EN | 
RAMIPS_TX_DMA_EN),
                     RAMIPS_PDMA_GLO_CFG);
+
+       /* disable all interrupts in the hw */
+       ramips_fe_wr(0, RAMIPS_FE_INT_ENABLE);
+
        free_irq(dev->irq, dev);
        netif_stop_queue(dev);
        tasklet_kill(&priv->tx_housekeeping_tasklet);
-- 
1.7.1

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to