aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2007-06-11 14:59:21 -0400
committerJeff Garzik <jeff@garzik.org>2007-07-08 22:16:41 -0400
commite1fd9070729765910b144ffcf74ca199c766509b (patch)
tree96db3bcfbb1cf76444d05fe65539de9a3809023d /drivers/net/spider_net.c
parent9e0a6e2598ac08d14c3388567eae9a4ccea1244f (diff)
spidernet: service TX later.
When entering the netdev poll routine, empty out the RX chain first, before cleaning up the TX chain. This should help avoid RX buffer overflows. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 628efc01f273..946b2e244f65 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1285,7 +1285,6 @@ spider_net_poll(struct net_device *netdev, int *budget)
1285 int packets_to_do, packets_done = 0; 1285 int packets_to_do, packets_done = 0;
1286 int no_more_packets = 0; 1286 int no_more_packets = 0;
1287 1287
1288 spider_net_cleanup_tx_ring(card);
1289 packets_to_do = min(*budget, netdev->quota); 1288 packets_to_do = min(*budget, netdev->quota);
1290 1289
1291 while (packets_to_do) { 1290 while (packets_to_do) {
@@ -1310,6 +1309,8 @@ spider_net_poll(struct net_device *netdev, int *budget)
1310 spider_net_refill_rx_chain(card); 1309 spider_net_refill_rx_chain(card);
1311 spider_net_enable_rxdmac(card); 1310 spider_net_enable_rxdmac(card);
1312 1311
1312 spider_net_cleanup_tx_ring(card);
1313
1313 /* if all packets are in the stack, enable interrupts and return 0 */ 1314 /* if all packets are in the stack, enable interrupts and return 0 */
1314 /* if not, return 1 */ 1315 /* if not, return 1 */
1315 if (no_more_packets) { 1316 if (no_more_packets) {