]>
Commit | Line | Data |
---|---|---|
cce6412b DM |
1 | --- ixgbe-3.10.16/src/ixgbe_main.c 2012-06-20 22:32:30.000000000 +0200 |
2 | +++ ixgbe-3.10.16.new/src/ixgbe_main.c 2012-07-19 05:53:51.000000000 +0200 | |
3 | @@ -5194,6 +5194,7 @@ | |
4 | struct ixgbe_hw *hw = &adapter->hw; | |
5 | struct net_device *netdev = adapter->netdev; | |
6 | int err; | |
7 | + u8 old_addr[ETH_ALEN]; | |
8 | ||
9 | /* lock SFP init bit to prevent race conditions with the watchdog */ | |
10 | while (test_and_set_bit(__IXGBE_IN_SFP_INIT, &adapter->state)) | |
11 | @@ -5228,9 +5229,11 @@ | |
12 | ||
13 | clear_bit(__IXGBE_IN_SFP_INIT, &adapter->state); | |
14 | ||
15 | + /* do not flush user set addresses */ | |
16 | + memcpy(old_addr, &adapter->mac_table[0].addr, netdev->addr_len); | |
17 | ixgbe_flush_sw_mac_table(adapter); | |
18 | - memcpy(&adapter->mac_table[0].addr, hw->mac.perm_addr, | |
19 | - netdev->addr_len); | |
20 | + memcpy(&adapter->mac_table[0].addr, old_addr, netdev->addr_len); | |
21 | + | |
22 | adapter->mac_table[0].queue = VMDQ_P(0); | |
23 | adapter->mac_table[0].state = (IXGBE_MAC_STATE_DEFAULT | | |
24 | IXGBE_MAC_STATE_IN_USE); |