| To: | jgarzik@xxxxxxxxx |
|---|---|
| Subject: | [PATCH 6/12 2.5] e1000 - include work down in tx path to decide when to quit polling mode |
| From: | ganesh.venkatesan@xxxxxxxxx |
| Date: | Thu, 29 Jul 2004 08:32:16 -0700 (PDT) |
| Cc: | netdev@xxxxxxxxxxx, <ganesh.venkatesan@xxxxxxxxx> |
| Reply-to: | ganesh.venkatesan@xxxxxxxxx |
| Sender: | netdev-bounce@xxxxxxxxxxx |
diff -up linux-2.5/drivers/net/e1000/e1000_main.c
linux-2.5/drivers/net/e1000.new/e1000_main.c
--- linux-2.5/drivers/net/e1000/e1000_main.c 2004-07-28 21:50:08.672461176
-0700
+++ linux-2.5/drivers/net/e1000.new/e1000_main.c 2004-07-28
21:50:09.523331824 -0700
@@ -2137,15 +2137,18 @@ e1000_clean(struct net_device *netdev, i
{
struct e1000_adapter *adapter = netdev->priv;
int work_to_do = min(*budget, netdev->quota);
+ int tx_cleaned;
int work_done = 0;
- e1000_clean_tx_irq(adapter);
+ tx_cleaned = e1000_clean_tx_irq(adapter);
e1000_clean_rx_irq(adapter, &work_done, work_to_do);
*budget -= work_done;
netdev->quota -= work_done;
- if(work_done < work_to_do || !netif_running(netdev)) {
+ /* if no Rx and Tx cleanup work was done, exit the polling mode */
+ if(!tx_cleaned || (work_done < work_to_do) ||
+ !netif_running(netdev)) {
netif_rx_complete(netdev);
e1000_irq_enable(adapter);
return 0;
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 4/12 2.5] e1000 - TSO fixes (in preparation for IPv6 TSO), ganesh . venkatesan |
|---|---|
| Next by Date: | [PATCH 5/12 2.5] e1000 - Avoid infinite loop while trying to re-establish link, ganesh . venkatesan |
| Previous by Thread: | [PATCH 4/12 2.5] e1000 - TSO fixes (in preparation for IPv6 TSO), ganesh . venkatesan |
| Next by Thread: | [PATCH 5/12 2.5] e1000 - Avoid infinite loop while trying to re-establish link, ganesh . venkatesan |
| Indexes: | [Date] [Thread] [Top] [All Lists] |