Skip to content

Commit

Permalink
e1000: add mmiowb() for IA64 to sync tail writes
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jesse Brandeburg authored and Jeff Garzik committed Dec 2, 2006
1 parent 21c4d5e commit 2ce9047
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/net/e1000/e1000_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2867,6 +2867,9 @@ e1000_tx_queue(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,

tx_ring->next_to_use = i;
writel(i, adapter->hw.hw_addr + tx_ring->tdt);
/* we need this if more than one processor can write to our tail
* at a time, it syncronizes IO on IA64/Altix systems */
mmiowb();
}

/**
Expand Down

0 comments on commit 2ce9047

Please sign in to comment.