From 15d658cb2010ec52e74920cfa64ef0427191ec3e Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 6 Sep 2006 10:17:54 -0700 Subject: 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 Signed-off-by: Greg Kroah-Hartman --- drivers/net/sky2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 72ca553f8bc4..72659839f1dc 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; -- cgit v1.2.3