e1000: Fix NAPI state bug when Rx complete
authorAuke Kok <auke-jan.h.kok@intel.com>
Wed, 28 Nov 2007 00:26:36 +0000 (16:26 -0800)
committerJeff Garzik <jeff@garzik.org>
Sat, 1 Dec 2007 21:32:32 +0000 (16:32 -0500)
Don't exit polling when we have not yet used our budget, this causes
the NAPI system to end up with a messed up poll list.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/e1000/e1000_main.c

index cf39473ef90a5e04ea65c04ac247a30bc6f06915..4f37506ad3744656c86d102f63fb66aac2185876 100644 (file)
@@ -3942,7 +3942,7 @@ e1000_clean(struct napi_struct *napi, int budget)
                          &work_done, budget);
 
        /* If no Tx and not enough Rx work done, exit the polling mode */
-       if ((!tx_cleaned && (work_done < budget)) ||
+       if ((!tx_cleaned && (work_done == 0)) ||
           !netif_running(poll_dev)) {
 quit_polling:
                if (likely(adapter->itr_setting & 3))