e1000e: fix bug in restart queue logic
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Thu, 16 Apr 2009 16:59:28 +0000 (16:59 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Apr 2009 08:09:58 +0000 (01:09 -0700)
commita86043c2ad92aa6312807039198d6ab6171164ef
treee1750256f0c4259964df467cecd2e9448052d083
parentb1e8fd54af73116331376a7b3074932a21e7477a
e1000e: fix bug in restart queue logic

If the e1000e transmit cleanup inner loop exited early, then
cleaned might not be true.  This could cause tx hangs or other
badness.  Use count to track the total number of descriptors
cleaned instead of basing a tx queue restart off of a temporary
working state variable.

This code now makes the flow the same for e1000/e1000e/igb/ixgbe

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e1000e/netdev.c