e1000: fix transmit routine exit bug
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Thu, 16 Apr 2009 16:59:47 +0000 (16:59 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Apr 2009 08:09:59 +0000 (01:09 -0700)
commit843f42678f6c47a2c8d1648e584cb57ebff3750f
treeffcef58a48baebe78f28104656638ad5d44c57ee
parenta86043c2ad92aa6312807039198d6ab6171164ef
e1000: fix transmit routine exit bug

If the e1000 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/e1000/e1000_main.c