diff options
Diffstat (limited to 'drivers/net/igb')
-rw-r--r-- | drivers/net/igb/e1000_mac.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/igb/e1000_mac.c b/drivers/net/igb/e1000_mac.c index 4969a5b1cf3c..2ad358a240bf 100644 --- a/drivers/net/igb/e1000_mac.c +++ b/drivers/net/igb/e1000_mac.c | |||
@@ -247,8 +247,15 @@ void igb_rar_set(struct e1000_hw *hw, u8 *addr, u32 index) | |||
247 | if (rar_low || rar_high) | 247 | if (rar_low || rar_high) |
248 | rar_high |= E1000_RAH_AV; | 248 | rar_high |= E1000_RAH_AV; |
249 | 249 | ||
250 | /* | ||
251 | * Some bridges will combine consecutive 32-bit writes into | ||
252 | * a single burst write, which will malfunction on some parts. | ||
253 | * The flushes avoid this. | ||
254 | */ | ||
250 | wr32(E1000_RAL(index), rar_low); | 255 | wr32(E1000_RAL(index), rar_low); |
256 | wrfl(); | ||
251 | wr32(E1000_RAH(index), rar_high); | 257 | wr32(E1000_RAH(index), rar_high); |
258 | wrfl(); | ||
252 | } | 259 | } |
253 | 260 | ||
254 | /** | 261 | /** |