diff options
author | Michael Brown <mcb30@ipxe.org> | 2022-03-17 12:37:45 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2022-08-12 13:03:12 +0100 |
commit | 06467ee70fd4750ecd2ae324f66055ff261cb713 (patch) | |
tree | f57911f9506a7e425225b12a97d07d5fd78ea435 /src/drivers | |
parent | d6e36a2d736efaa9e44784bc58f4d90356774971 (diff) | |
download | ipxe-06467ee70fd4750ecd2ae324f66055ff261cb713.zip ipxe-06467ee70fd4750ecd2ae324f66055ff261cb713.tar.gz ipxe-06467ee70fd4750ecd2ae324f66055ff261cb713.tar.bz2 |
[intelxl] Defer fetching MAC address until after opening admin queue
Allow for the MAC address to be fetched using an admin queue command,
instead of reading the PRTPM_SA[HL] registers directly.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/net/intelxl.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/drivers/net/intelxl.c b/src/drivers/net/intelxl.c index 0f5e70d..438657f 100644 --- a/src/drivers/net/intelxl.c +++ b/src/drivers/net/intelxl.c @@ -1688,10 +1688,6 @@ static int intelxl_probe ( struct pci_device *pci ) { intelxl, intelxl->pf, intelxl->port, intelxl->base, INTELXL_PFLAN_QALLOC_LASTQ ( pflan_qalloc ) ); - /* Fetch MAC address and maximum frame size */ - if ( ( rc = intelxl_fetch_mac ( intelxl, netdev ) ) != 0 ) - goto err_fetch_mac; - /* Enable MSI-X dummy interrupt */ if ( ( rc = intelxl_msix_enable ( intelxl, pci, INTELXL_MSIX_VECTOR ) ) != 0 ) @@ -1725,6 +1721,10 @@ static int intelxl_probe ( struct pci_device *pci ) { if ( ( rc = intelxl_admin_promisc ( intelxl ) ) != 0 ) goto err_admin_promisc; + /* Fetch MAC address and maximum frame size */ + if ( ( rc = intelxl_fetch_mac ( intelxl, netdev ) ) != 0 ) + goto err_fetch_mac; + /* Configure queue register addresses */ intelxl->tx.reg = INTELXL_QTX ( intelxl->queue ); intelxl->tx.tail = ( intelxl->tx.reg + INTELXL_QXX_TAIL ); @@ -1756,6 +1756,7 @@ static int intelxl_probe ( struct pci_device *pci ) { unregister_netdev ( netdev ); err_register_netdev: + err_fetch_mac: err_admin_promisc: err_admin_vsi: err_admin_switch: @@ -1766,7 +1767,6 @@ static int intelxl_probe ( struct pci_device *pci ) { err_open_admin: intelxl_msix_disable ( intelxl, pci, INTELXL_MSIX_VECTOR ); err_msix: - err_fetch_mac: pci_reset ( pci, intelxl->exp ); err_exp: iounmap ( intelxl->regs ); |