fm10k: update netdev perm_addr during reinit, instead of at up
Update the netdev permanent address during fm10k_reinit enables the user to immediately see the new MAC address on the VF even if the device isn't up. The previous code required that the device by opened before changes would appear. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Krishneil Singh <krishneil.k.singh@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
106c07a495
commit
bdc7f5902d
|
@ -996,21 +996,6 @@ void fm10k_restore_rx_state(struct fm10k_intfc *interface)
|
|||
int xcast_mode;
|
||||
u16 vid, glort;
|
||||
|
||||
/* restore our address if perm_addr is set */
|
||||
if (hw->mac.type == fm10k_mac_vf) {
|
||||
if (is_valid_ether_addr(hw->mac.perm_addr)) {
|
||||
ether_addr_copy(hw->mac.addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->perm_addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->dev_addr, hw->mac.perm_addr);
|
||||
netdev->addr_assign_type &= ~NET_ADDR_RANDOM;
|
||||
}
|
||||
|
||||
if (hw->mac.vlan_override)
|
||||
netdev->features &= ~NETIF_F_HW_VLAN_CTAG_RX;
|
||||
else
|
||||
netdev->features |= NETIF_F_HW_VLAN_CTAG_RX;
|
||||
}
|
||||
|
||||
/* record glort for this interface */
|
||||
glort = interface->glort;
|
||||
|
||||
|
|
|
@ -170,6 +170,21 @@ static void fm10k_reinit(struct fm10k_intfc *interface)
|
|||
/* reassociate interrupts */
|
||||
fm10k_mbx_request_irq(interface);
|
||||
|
||||
/* update hardware address for VFs if perm_addr has changed */
|
||||
if (hw->mac.type == fm10k_mac_vf) {
|
||||
if (is_valid_ether_addr(hw->mac.perm_addr)) {
|
||||
ether_addr_copy(hw->mac.addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->perm_addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->dev_addr, hw->mac.perm_addr);
|
||||
netdev->addr_assign_type &= ~NET_ADDR_RANDOM;
|
||||
}
|
||||
|
||||
if (hw->mac.vlan_override)
|
||||
netdev->features &= ~NETIF_F_HW_VLAN_CTAG_RX;
|
||||
else
|
||||
netdev->features |= NETIF_F_HW_VLAN_CTAG_RX;
|
||||
}
|
||||
|
||||
/* reset clock */
|
||||
fm10k_ts_reset(interface);
|
||||
|
||||
|
|
Loading…
Reference in New Issue