netdev
[Top] [All Lists]

[PATCH 6/12 2.5] e1000 - include work down in tx path to decide when to

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>
  • [PATCH 6/12 2.5] e1000 - include work down in tx path to decide when to quit polling mode, ganesh . venkatesan <=