summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/sfc/net_driver.h
diff options
context:
space:
mode:
authorDaniel Pieczko <dpieczko@solarflare.com>2012-10-02 16:36:18 +0400
committerBen Hutchings <bhutchings@solarflare.com>2012-12-01 06:37:27 +0400
commit525d9e824018cd7cc8d8d44832ddcd363abfe6e1 (patch)
treecedb42187455981ebd1cb05a9bba0a836b5a94eb /drivers/net/ethernet/sfc/net_driver.h
parent876be083b669c43203c0ee8709d749896e1d8d60 (diff)
downloadlinux-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.h1
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;
};
/**