diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2006-11-01 11:47:42 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-02 00:11:59 -0500 |
commit | 2ce9047f5d8464039da8ff986e71be5546e229c0 (patch) | |
tree | 4e888a376bb97c9688d8ebb70d1ffef144b5529f /drivers/net/e1000 | |
parent | 21c4d5e07859a6fc0f62be37da15b161e142c8d1 (diff) |
e1000: add mmiowb() for IA64 to sync tail writes
IA64 SMP systems were seeing TX issues with multiple cpu's attempting
to write tail registers unordered. This mmiowb() fixes the issue.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 93b97c6b8a63..681b738c6dac 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -2867,6 +2867,9 @@ e1000_tx_queue(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, | |||
2867 | 2867 | ||
2868 | tx_ring->next_to_use = i; | 2868 | tx_ring->next_to_use = i; |
2869 | writel(i, adapter->hw.hw_addr + tx_ring->tdt); | 2869 | writel(i, adapter->hw.hw_addr + tx_ring->tdt); |
2870 | /* we need this if more than one processor can write to our tail | ||
2871 | * at a time, it syncronizes IO on IA64/Altix systems */ | ||
2872 | mmiowb(); | ||
2870 | } | 2873 | } |
2871 | 2874 | ||
2872 | /** | 2875 | /** |