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:
committed by
Greg Kroah-Hartman
parent
6697636790
commit
15d658cb20
+3
-3
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user