diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2012-09-06 11:52:31 -0400 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2012-11-30 19:26:09 -0500 |
commit | d5e8cc6c946e0857826dcfbb3585068858445bfe (patch) | |
tree | 2867bb12190df7cea905afce3a698d41202953b1 /drivers/net/ethernet/sfc/net_driver.h | |
parent | 3f978ef36cca9bb10c88a56baec1d9d1cb072b98 (diff) |
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/net_driver.h')
-rw-r--r-- | drivers/net/ethernet/sfc/net_driver.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h index 2487f582ab04..1014556df0e7 100644 --- a/drivers/net/ethernet/sfc/net_driver.h +++ b/drivers/net/ethernet/sfc/net_driver.h | |||
@@ -907,6 +907,7 @@ static inline unsigned int efx_port_num(struct efx_nic *efx) | |||
907 | * @remove_port: Free resources allocated by probe_port() | 907 | * @remove_port: Free resources allocated by probe_port() |
908 | * @handle_global_event: Handle a "global" event (may be %NULL) | 908 | * @handle_global_event: Handle a "global" event (may be %NULL) |
909 | * @prepare_flush: Prepare the hardware for flushing the DMA queues | 909 | * @prepare_flush: Prepare the hardware for flushing the DMA queues |
910 | * @finish_flush: Clean up after flushing the DMA queues | ||
910 | * @update_stats: Update statistics not provided by event handling | 911 | * @update_stats: Update statistics not provided by event handling |
911 | * @start_stats: Start the regular fetching of statistics | 912 | * @start_stats: Start the regular fetching of statistics |
912 | * @stop_stats: Stop the regular fetching of statistics | 913 | * @stop_stats: Stop the regular fetching of statistics |
@@ -954,6 +955,7 @@ struct efx_nic_type { | |||
954 | void (*remove_port)(struct efx_nic *efx); | 955 | void (*remove_port)(struct efx_nic *efx); |
955 | bool (*handle_global_event)(struct efx_channel *channel, efx_qword_t *); | 956 | bool (*handle_global_event)(struct efx_channel *channel, efx_qword_t *); |
956 | void (*prepare_flush)(struct efx_nic *efx); | 957 | void (*prepare_flush)(struct efx_nic *efx); |
958 | void (*finish_flush)(struct efx_nic *efx); | ||
957 | void (*update_stats)(struct efx_nic *efx); | 959 | void (*update_stats)(struct efx_nic *efx); |
958 | void (*start_stats)(struct efx_nic *efx); | 960 | void (*start_stats)(struct efx_nic *efx); |
959 | void (*stop_stats)(struct efx_nic *efx); | 961 | void (*stop_stats)(struct efx_nic *efx); |