Browse Source

r8169: missing barriers.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Hayes Wang <hayeswang@realtek.com>
Francois Romieu 13 years ago
parent
commit
1e874e041f
1 changed files with 2 additions and 3 deletions
  1. 2 3
      drivers/net/ethernet/realtek/r8169.c

+ 2 - 3
drivers/net/ethernet/realtek/r8169.c

@@ -5552,7 +5552,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
 
 
 	if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
 	if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
 		netif_stop_queue(dev);
 		netif_stop_queue(dev);
-		smp_rmb();
+		smp_mb();
 		if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
 		if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
 			netif_wake_queue(dev);
 			netif_wake_queue(dev);
 	}
 	}
@@ -5653,7 +5653,7 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
 
 
 	if (tp->dirty_tx != dirty_tx) {
 	if (tp->dirty_tx != dirty_tx) {
 		tp->dirty_tx = dirty_tx;
 		tp->dirty_tx = dirty_tx;
-		smp_wmb();
+		smp_mb();
 		if (netif_queue_stopped(dev) &&
 		if (netif_queue_stopped(dev) &&
 		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
 		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
 			netif_wake_queue(dev);
 			netif_wake_queue(dev);
@@ -5664,7 +5664,6 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
 		 * of start_xmit activity is detected (if it is not detected,
 		 * of start_xmit activity is detected (if it is not detected,
 		 * it is slow enough). -- FR
 		 * it is slow enough). -- FR
 		 */
 		 */
-		smp_rmb();
 		if (tp->cur_tx != dirty_tx)
 		if (tp->cur_tx != dirty_tx)
 			RTL_W8(TxPoll, NPQ);
 			RTL_W8(TxPoll, NPQ);
 	}
 	}