We use netif_stop_queue() in several places where we want to ensure that
the start_xmit function is not running. netif_stop_queue() is not
sufficient to achieve that - it merely sets a flag to indicate that the
transmit queue(s) should not be run.
netif_tx_disable() gives this guarantee, since it takes the transmit
queue lock while marking the queue stopped. This will wait for the
transmit function to complete before returning.
Acked-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
if (netif_running(ndev)) {
netif_device_detach(ndev);
napi_disable(&fep->napi);
- netif_stop_queue(ndev);
+ netif_tx_disable(ndev);
netif_tx_lock_bh(ndev);
}
/* Don't know what to do yet. */
napi_disable(&fep->napi);
fep->opened = 0;
- netif_stop_queue(ndev);
+ netif_tx_disable(ndev);
fec_stop(ndev);
if (fep->phy_dev) {