[ramips] fixes dma bug in eth driver, that was caused under high net load. the dma...
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 25 Oct 2009 14:34:55 +0000 (14:34 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 25 Oct 2009 14:34:55 +0000 (14:34 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18149 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ramips/files/drivers/net/ramips.c

index 1689f0a..e634453 100644 (file)
@@ -248,6 +248,8 @@ ramips_eth_irq(int irq, void *dev)
        struct raeth_priv *priv = netdev_priv(dev);
        unsigned long fe_int = ramips_fe_rr(RAMIPS_FE_INT_STATUS);
 
+       ramips_fe_wr(0xFFFFFFFF, RAMIPS_FE_INT_STATUS);
+
        if(fe_int & RAMIPS_RX_DLY_INT)
        {
                ramips_fe_wr(ramips_fe_rr(RAMIPS_FE_INT_ENABLE) & ~(RAMIPS_RX_DLY_INT),
@@ -255,8 +257,7 @@ ramips_eth_irq(int irq, void *dev)
                tasklet_schedule(&priv->rx_tasklet);
        }
        if(fe_int & RAMIPS_TX_DLY_INT)
-               tasklet_schedule(&priv->tx_housekeeping_tasklet);
-       ramips_fe_wr(0xFFFFFFFF, RAMIPS_FE_INT_STATUS);
+               ramips_eth_tx_housekeeping((unsigned long)dev);
        return IRQ_HANDLED;
 }
 
This page took 0.031604 seconds and 4 git commands to generate.