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>
This commit is contained in:
Stephen Hemminger
2006-09-06 10:17:54 -07:00
committed by Greg Kroah-Hartman
parent 6697636790
commit 15d658cb20
+3 -3
View 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;