diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2012-09-06 16:52:31 +0100 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2012-12-01 00:26:09 +0000 |
commit | d5e8cc6c946e0857826dcfbb3585068858445bfe (patch) | |
tree | 2867bb12190df7cea905afce3a698d41202953b1 /drivers/net/ethernet/sfc/nic.c | |
parent | 3f978ef36cca9bb10c88a56baec1d9d1cb072b98 (diff) | |
download | linux-d5e8cc6c946e0857826dcfbb3585068858445bfe.tar.bz2 |
sfc: Really disable flow control while flushing
Receiving pause frames can block TX queue flushes. Earlier changes
work around this by reconfiguring the MAC during flushes for VFs, but
during flushes for the PF we would only change the fc_disable counter.
Unless the MAC is reconfigured for some other reason during the flush
(which I would not expect to happen) this had no effect at all.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/nic.c')
-rw-r--r-- | drivers/net/ethernet/sfc/nic.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ethernet/sfc/nic.c b/drivers/net/ethernet/sfc/nic.c index aab7cacb2e34..e10b7ec046c3 100644 --- a/drivers/net/ethernet/sfc/nic.c +++ b/drivers/net/ethernet/sfc/nic.c @@ -680,7 +680,6 @@ int efx_nic_flush_queues(struct efx_nic *efx) struct efx_tx_queue *tx_queue; int rc = 0; - efx->fc_disable++; efx->type->prepare_flush(efx); efx_for_each_channel(channel, efx) { @@ -742,7 +741,7 @@ int efx_nic_flush_queues(struct efx_nic *efx) atomic_set(&efx->rxq_flush_outstanding, 0); } - efx->fc_disable--; + efx->type->finish_flush(efx); return rc; } |