diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-09-06 10:17:54 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-09-08 14:51:40 -0700 |
commit | 15d658cb2010ec52e74920cfa64ef0427191ec3e (patch) | |
tree | 24005e4d5487f83892dae8057b612c14cde73865 | |
parent | 669763679043a814febae9ac1501bd2c9f848559 (diff) |
sky2: clear status IRQ after empty
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>
-rw-r--r-- | drivers/net/sky2.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 72ca553f8bc..72659839f1d 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -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; |