summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/qede/qede_main.c
diff options
context:
space:
mode:
authorYuval Mintz2016-10-14 11:19:17 +0200
committerDavid S. Miller2016-10-14 17:59:57 +0200
commitc3aaa403840a5ccd305fb5e73f3cbfac6453b5e5 (patch)
tree94b5d99c8bc049069890a8000e3567e3ffb5bd7b /drivers/net/ethernet/qlogic/qede/qede_main.c
parentMerge branch 'ingress-actions' (diff)
downloadkernel-qcow2-linux-c3aaa403840a5ccd305fb5e73f3cbfac6453b5e5.tar.gz
kernel-qcow2-linux-c3aaa403840a5ccd305fb5e73f3cbfac6453b5e5.tar.xz
kernel-qcow2-linux-c3aaa403840a5ccd305fb5e73f3cbfac6453b5e5.zip
qed: Pass MAC hints to VFs
Some hypervisors can support MAC hints to their VFs. Even though we don't have such a hypervisor API in linux, we add sufficient logic for the VF to be able to receive such hints and set the mac accordingly - as long as the VF has not been set with a MAC already. Signed-off-by: Yuval Mintz <Yuval.Mintz@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qede/qede_main.c')
-rw-r--r--drivers/net/ethernet/qlogic/qede/qede_main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index 343038ca047d..9866d952e3e1 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -171,10 +171,14 @@ static struct pci_driver qede_pci_driver = {
#endif
};
-static void qede_force_mac(void *dev, u8 *mac)
+static void qede_force_mac(void *dev, u8 *mac, bool forced)
{
struct qede_dev *edev = dev;
+ /* MAC hints take effect only if we haven't set one already */
+ if (is_valid_ether_addr(edev->ndev->dev_addr) && !forced)
+ return;
+
ether_addr_copy(edev->ndev->dev_addr, mac);
ether_addr_copy(edev->primary_mac, mac);
}