diff options
author | Daniel Pieczko <dpieczko@solarflare.com> | 2012-10-02 08:36:18 -0400 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2012-11-30 21:37:27 -0500 |
commit | 525d9e824018cd7cc8d8d44832ddcd363abfe6e1 (patch) | |
tree | cedb42187455981ebd1cb05a9bba0a836b5a94eb /drivers/net/ethernet/sfc/net_driver.h | |
parent | 876be083b669c43203c0ee8709d749896e1d8d60 (diff) |
sfc: Work-around flush timeout when flushes have completed
We sometimes hit a "failed to flush" timeout on some TX queues, but the
flushes have completed and the flush completion events seem to go missing.
In this case, we can check the TX_DESC_PTR_TBL register and drain the
queues if the flushes had finished.
[bwh: Minor fixes to coding style]
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 | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h index 1014556df0e7..2d756c1d7142 100644 --- a/drivers/net/ethernet/sfc/net_driver.h +++ b/drivers/net/ethernet/sfc/net_driver.h | |||
@@ -200,6 +200,7 @@ struct efx_tx_queue { | |||
200 | /* Members shared between paths and sometimes updated */ | 200 | /* Members shared between paths and sometimes updated */ |
201 | unsigned int empty_read_count ____cacheline_aligned_in_smp; | 201 | unsigned int empty_read_count ____cacheline_aligned_in_smp; |
202 | #define EFX_EMPTY_COUNT_VALID 0x80000000 | 202 | #define EFX_EMPTY_COUNT_VALID 0x80000000 |
203 | atomic_t flush_outstanding; | ||
203 | }; | 204 | }; |
204 | 205 | ||
205 | /** | 206 | /** |