diff options
author | Yuval Mintz | 2016-10-14 11:19:17 +0200 |
---|---|---|
committer | David S. Miller | 2016-10-14 17:59:57 +0200 |
commit | c3aaa403840a5ccd305fb5e73f3cbfac6453b5e5 (patch) | |
tree | 94b5d99c8bc049069890a8000e3567e3ffb5bd7b /drivers/net/ethernet/qlogic/qede/qede_main.c | |
parent | Merge branch 'ingress-actions' (diff) | |
download | kernel-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.c | 6 |
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); } |