sfc: Don't wake TX queues while they're being flushed
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 4 Mar 2009 09:53:15 +0000 (09:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Mar 2009 01:40:23 +0000 (17:40 -0800)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/tx.c

index 9f97e44..b1e1907 100644 (file)
@@ -400,7 +400,7 @@ void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index)
         * separates the update of read_count from the test of
         * stopped. */
        smp_mb();
-       if (unlikely(tx_queue->stopped)) {
+       if (unlikely(tx_queue->stopped) && likely(efx->port_enabled)) {
                fill_level = tx_queue->insert_count - tx_queue->read_count;
                if (fill_level < EFX_NETDEV_TX_THRESHOLD(tx_queue)) {
                        EFX_BUG_ON_PARANOID(!efx_dev_registered(efx));