]> git.hungrycats.org Git - linux/commitdiff
sky2: clear status IRQ after empty
authorStephen Hemminger <shemminger@osdl.org>
Wed, 6 Sep 2006 17:17:54 +0000 (10:17 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 8 Sep 2006 21:51:40 +0000 (14:51 -0700)
Don't clear status IRQ until list has been read to avoid causing
status list wraparound. Clearing IRQ forces a Transmit Status update
if it is pending.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/sky2.c

index 72ca553f8bc4b846d4c2ba9b5e413904356bfc94..72659839f1dc418909edbf710c5525fdec539337 100644 (file)
@@ -2016,6 +2016,9 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do)
                }
        }
 
+       /* Fully processed status ring so clear irq */
+       sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ);
+
 exit_loop:
        return work_done;
 }
@@ -2218,9 +2221,6 @@ static int sky2_poll(struct net_device *dev0, int *budget)
        *budget -= work_done;
        dev0->quota -= work_done;
 
-       if (status & Y2_IS_STAT_BMU)
-               sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ);
-
        if (sky2_more_work(hw))
                return 1;