[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