summaryrefslogtreecommitdiffstats
path: root/src/drivers/net
diff options
context:
space:
mode:
authorHannes Reinecke2014-06-03 14:01:16 +0200
committerMichael Brown2014-06-12 18:38:08 +0200
commitf63ec19dca6df70560fc7d5c5e2ebe40c1bd2154 (patch)
tree617381b2cb89418d310901dd494fe00668c73230 /src/drivers/net
parent[iscsi] Include IP address origin in iBFT (diff)
downloadipxe-f63ec19dca6df70560fc7d5c5e2ebe40c1bd2154.tar.gz
ipxe-f63ec19dca6df70560fc7d5c5e2ebe40c1bd2154.tar.xz
ipxe-f63ec19dca6df70560fc7d5c5e2ebe40c1bd2154.zip
[igbvf] Assign random MAC address if none is set
If the VF doesn't have a MAC address assigned we should create a random MAC address. Signed-off-by: Hannes Reinecke <hare@suse.de> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net')
-rw-r--r--src/drivers/net/igbvf/igbvf_main.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/drivers/net/igbvf/igbvf_main.c b/src/drivers/net/igbvf/igbvf_main.c
index cd189ecb0..901bba95e 100644
--- a/src/drivers/net/igbvf/igbvf_main.c
+++ b/src/drivers/net/igbvf/igbvf_main.c
@@ -871,20 +871,14 @@ int igbvf_probe ( struct pci_device *pdev )
DBG ("Error reading MAC address\n");
goto err_hw_init;
}
+ if ( ! is_valid_ether_addr(adapter->hw.mac.addr) ) {
+ /* Assign random MAC address */
+ eth_random_addr(adapter->hw.mac.addr);
+ }
}
memcpy ( netdev->hw_addr, adapter->hw.mac.addr, ETH_ALEN );
- if ( ! is_valid_ether_addr( netdev->hw_addr ) ) {
- DBG ("Invalid MAC Address: "
- "%02x:%02x:%02x:%02x:%02x:%02x\n",
- netdev->hw_addr[0], netdev->hw_addr[1],
- netdev->hw_addr[2], netdev->hw_addr[3],
- netdev->hw_addr[4], netdev->hw_addr[5]);
- err = -EIO;
- goto err_hw_init;
- }
-
/* reset the hardware with the new settings */
igbvf_reset ( adapter );