iavf: allow permanent MAC address to change
authorMitch Williams <mitch.a.williams@intel.com>
Thu, 25 Jul 2019 09:47:43 +0000 (05:47 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 9 Sep 2019 17:08:38 +0000 (10:08 -0700)
Allow the VF to override the "permanent" MAC address set by the host.
This allows bonding to work in the case where the administrator has set
the VF MAC.

Note that the VF must still be set to Trusted on the host if this change
is to be accepted by the PF driver.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/iavf/iavf.h
drivers/net/ethernet/intel/iavf/iavf_main.c

index 9fc635d..29de3ae 100644 (file)
@@ -253,7 +253,6 @@ struct iavf_adapter {
 #define IAVF_FLAG_RESET_PENDING                BIT(4)
 #define IAVF_FLAG_RESET_NEEDED         BIT(5)
 #define IAVF_FLAG_WB_ON_ITR_CAPABLE            BIT(6)
-#define IAVF_FLAG_ADDR_SET_BY_PF               BIT(8)
 #define IAVF_FLAG_SERVICE_CLIENT_REQUESTED     BIT(9)
 #define IAVF_FLAG_CLIENT_NEEDS_OPEN            BIT(10)
 #define IAVF_FLAG_CLIENT_NEEDS_CLOSE           BIT(11)
index 554aa61..07f5541 100644 (file)
@@ -790,9 +790,6 @@ static int iavf_set_mac(struct net_device *netdev, void *p)
        if (ether_addr_equal(netdev->dev_addr, addr->sa_data))
                return 0;
 
-       if (adapter->flags & IAVF_FLAG_ADDR_SET_BY_PF)
-               return -EPERM;
-
        spin_lock_bh(&adapter->mac_vlan_list_lock);
 
        f = iavf_find_filter(adapter, hw->mac.addr);
@@ -1811,7 +1808,6 @@ static int iavf_init_get_resources(struct iavf_adapter *adapter)
                eth_hw_addr_random(netdev);
                ether_addr_copy(adapter->hw.mac.addr, netdev->dev_addr);
        } else {
-               adapter->flags |= IAVF_FLAG_ADDR_SET_BY_PF;
                ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
                ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr);
        }