diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2013-05-27 16:52:54 +0100 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-08-21 19:49:10 +0100 |
commit | 501a248cf6995286a4da0c2aa93c0fa9c5941453 (patch) | |
tree | ab0019f973f0d36b95e09a8419701bf1e263bdf6 | |
parent | d8aec745ddaf278ba187d7712c1becc5ffd0f7da (diff) | |
download | linux-501a248cf6995286a4da0c2aa93c0fa9c5941453.tar.gz linux-501a248cf6995286a4da0c2aa93c0fa9c5941453.tar.bz2 linux-501a248cf6995286a4da0c2aa93c0fa9c5941453.zip |
sfc: Remove bogus call to efx_release_tx_buffers()
efx_unregister_netdev() should not call efx_release_tx_buffers()
directly, as it is already done when closing the device:
efx_net_stop() -> efx_stop_all() -> efx_stop_datapath() ->
efx_fini_tx_queue() -> efx_release_tx_buffers().
(This was presumably a workaround for a race between efx_stop_all()
and the data path that has since been properly fixed.)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
-rw-r--r-- | drivers/net/ethernet/sfc/efx.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index ee9242cf5fd7..0c3c0c19b455 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -2156,22 +2156,11 @@ fail_locked: static void efx_unregister_netdev(struct efx_nic *efx) { - struct efx_channel *channel; - struct efx_tx_queue *tx_queue; - if (!efx->net_dev) return; BUG_ON(netdev_priv(efx->net_dev) != efx); - /* Free up any skbs still remaining. This has to happen before - * we try to unregister the netdev as running their destructors - * may be needed to get the device ref. count to 0. */ - efx_for_each_channel(channel, efx) { - efx_for_each_channel_tx_queue(tx_queue, channel) - efx_release_tx_buffers(tx_queue); - } - strlcpy(efx->name, pci_name(efx->pci_dev), sizeof(efx->name)); device_remove_file(&efx->pci_dev->dev, &dev_attr_phy_type); |