e1000e: do not schedule the Tx queue until ready
authorBruce Allan <bruce.w.allan@intel.com>
Fri, 13 May 2011 07:20:03 +0000 (07:20 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 10 Jun 2011 03:33:08 +0000 (20:33 -0700)
commit400484fa65ead1bbc3e86ea79e7505182a31bce1
tree2358926e54a42d08b92a39a980788783024d23f4
parentc5caf4825b22957e4ad70fd94316e91ce8cfb51c
e1000e: do not schedule the Tx queue until ready

Start the Tx queue when the interface is brought up in e1000e_up() but do
not schedule the queue until link is up as detected in the watchdog task
which sets netif_carrier_on.

Also flush the descriptors and clean the Tx and Rx rings before resetting
the hardware when bringing the interface down otherwise there is a small
window where the watchdog task can be triggered with netif_carrier_off
and the Tx ring not yet empty which causes an additional and unnecessary
reset.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/e1000e/netdev.c