[PATCH] e1000: 1 Robert Olsson's fix and

Linux Kernel Mailing List <[email protected]> Thu, 24 Feb 2005 05:40:31 +0000
Newsgroups gmane.linux.kernel.commits.2-4
Message-ID <[email protected]>
ChangeSet 1.1548.1.1, 2005/02/24 00:40:31-05:00, [email protected]

	[PATCH] e1000: 1 Robert Olsson's fix and
	
	1 Rober Olsson's fix and refinement to the poll routine
	Signed-off-by: Mallikarjuna R Chilakala <[email protected]>
	Signed-off-by: Ganesh Venkatesan <[email protected]>
	Signed-off-by: John Ronciak <[email protected]>
	Signed-off-by: Jeff Garzik <[email protected]>



 e1000_main.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)


diff -Nru a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
--- a/drivers/net/e1000/e1000_main.c	2005-03-04 12:02:41 -08:00
+++ b/drivers/net/e1000/e1000_main.c	2005-03-04 12:02:41 -08:00
@@ -2155,24 +2155,21 @@
 	int tx_cleaned;
 	int work_done = 0;
 	
-	if (!netif_carrier_ok(netdev))
-		goto quit_polling;
-
 	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 no Rx and Tx cleanup work was done, exit the polling mode */
-	if(!tx_cleaned || (work_done < work_to_do) || 
+	/* if no Tx and not enough Rx work done, exit the polling mode */
+	if((!tx_cleaned && (work_done < work_to_do)) || 
 				!netif_running(netdev)) {
-quit_polling:	netif_rx_complete(netdev);
+		netif_rx_complete(netdev);
 		e1000_irq_enable(adapter);
 		return 0;
 	}
 
-	return (work_done >= work_to_do);
+	return 1;
 }
 
 #endif