diff options
author | Daniel Pieczko <dpieczko@solarflare.com> | 2012-10-02 16:36:18 +0400 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2012-12-01 06:37:27 +0400 |
commit | 525d9e824018cd7cc8d8d44832ddcd363abfe6e1 (patch) | |
tree | cedb42187455981ebd1cb05a9bba0a836b5a94eb /drivers/net/ethernet/sfc/net_driver.h | |
parent | 876be083b669c43203c0ee8709d749896e1d8d60 (diff) | |
download | linux-525d9e824018cd7cc8d8d44832ddcd363abfe6e1.tar.xz |
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 { /* Members shared between paths and sometimes updated */ unsigned int empty_read_count ____cacheline_aligned_in_smp; #define EFX_EMPTY_COUNT_VALID 0x80000000 + atomic_t flush_outstanding; }; /** |