sky2: MIB counter overflow handling
authorStephen Hemminger <shemminger@linux-foundation.org>
Mon, 14 May 2007 19:38:13 +0000 (12:38 -0700)
committerJeff Garzik <jeff@garzik.org>
Fri, 18 May 2007 00:43:14 +0000 (20:43 -0400)
Make sure that if we ever get a MIB counter overflow interrupt (normally
masked off), that the IRQ is cleared.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sky2.c

index bde28ad9797df50eba9fbac92e7f0d9092b52b24..6e360f816605d885fd1fd6cdcbbff99a37c09c81 100644 (file)
@@ -2345,6 +2345,12 @@ static void sky2_mac_intr(struct sky2_hw *hw, unsigned port)
                printk(KERN_INFO PFX "%s: mac interrupt status 0x%x\n",
                       dev->name, status);
 
+       if (status & GM_IS_RX_CO_OV)
+               gma_read16(hw, port, GM_RX_IRQ_SRC);
+
+       if (status & GM_IS_TX_CO_OV)
+               gma_read16(hw, port, GM_TX_IRQ_SRC);
+
        if (status & GM_IS_RX_FF_OR) {
                ++sky2->net_stats.rx_fifo_errors;
                sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_CLI_RX_FO);