diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 7aa9cf4e9e98d41d23deb146b07de1f5c1fe5b2b..982a9010c7a925e0b2e29b14cbe156d670c57d2b 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2953,10 +2953,11 @@ static void rtl_set_rx_mode(struct net_device *dev)
 		mc_filter[1] = 0xffffffff;
 	}
 
-	RTL_W32(RxConfig, tmp);
 	RTL_W32(MAR0 + 0, mc_filter[0]);
 	RTL_W32(MAR0 + 4, mc_filter[1]);
 
+	RTL_W32(RxConfig, tmp);
+
 	spin_unlock_irqrestore(&tp->lock, flags);
 }