aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/r8169.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r--drivers/net/r8169.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 3db85daa3671..787befc65322 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2832,8 +2832,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
2832 spin_lock_irq(&tp->lock); 2832 spin_lock_irq(&tp->lock);
2833 2833
2834 RTL_W8(Cfg9346, Cfg9346_Unlock); 2834 RTL_W8(Cfg9346, Cfg9346_Unlock);
2835 RTL_W32(MAC0, low); 2835
2836 RTL_W32(MAC4, high); 2836 RTL_W32(MAC4, high);
2837 RTL_R32(MAC4);
2838
2839 RTL_W32(MAC0, low);
2840 RTL_R32(MAC0);
2841
2837 RTL_W8(Cfg9346, Cfg9346_Lock); 2842 RTL_W8(Cfg9346, Cfg9346_Lock);
2838 2843
2839 spin_unlock_irq(&tp->lock); 2844 spin_unlock_irq(&tp->lock);
@@ -4316,7 +4321,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
4316 4321
4317 tp->cur_tx += frags + 1; 4322 tp->cur_tx += frags + 1;
4318 4323
4319 smp_wmb(); 4324 wmb();
4320 4325
4321 RTL_W8(TxPoll, NPQ); /* set polling bit */ 4326 RTL_W8(TxPoll, NPQ); /* set polling bit */
4322 4327
@@ -4675,7 +4680,7 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
4675 * until it does. 4680 * until it does.
4676 */ 4681 */
4677 tp->intr_mask = 0xffff; 4682 tp->intr_mask = 0xffff;
4678 smp_wmb(); 4683 wmb();
4679 RTL_W16(IntrMask, tp->intr_event); 4684 RTL_W16(IntrMask, tp->intr_event);
4680 } 4685 }
4681 4686
@@ -4813,8 +4818,8 @@ static void rtl_set_rx_mode(struct net_device *dev)
4813 mc_filter[1] = swab32(data); 4818 mc_filter[1] = swab32(data);
4814 } 4819 }
4815 4820
4816 RTL_W32(MAR0 + 0, mc_filter[0]);
4817 RTL_W32(MAR0 + 4, mc_filter[1]); 4821 RTL_W32(MAR0 + 4, mc_filter[1]);
4822 RTL_W32(MAR0 + 0, mc_filter[0]);
4818 4823
4819 RTL_W32(RxConfig, tmp); 4824 RTL_W32(RxConfig, tmp);
4820 4825