mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
sfxge(4): move queue size checks to after the NIC config has been populated
Submitted by: Mark Spender <mspender at solarflare.com> Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D8974
This commit is contained in:
parent
a98003dde4
commit
99e3d68596
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=310820
|
@ -737,6 +737,16 @@ sfxge_create(struct sfxge_softc *sc)
|
|||
goto fail3;
|
||||
sc->enp = enp;
|
||||
|
||||
/* Initialize MCDI to talk to the microcontroller. */
|
||||
DBGPRINT(sc->dev, "mcdi_init...");
|
||||
if ((error = sfxge_mcdi_init(sc)) != 0)
|
||||
goto fail4;
|
||||
|
||||
/* Probe the NIC and build the configuration data area. */
|
||||
DBGPRINT(sc->dev, "nic_probe...");
|
||||
if ((error = efx_nic_probe(enp)) != 0)
|
||||
goto fail5;
|
||||
|
||||
if (!ISP2(sfxge_rx_ring_entries) ||
|
||||
(sfxge_rx_ring_entries < EFX_RXQ_MINNDESCS) ||
|
||||
(sfxge_rx_ring_entries > EFX_RXQ_MAXNDESCS)) {
|
||||
|
@ -759,16 +769,6 @@ sfxge_create(struct sfxge_softc *sc)
|
|||
}
|
||||
sc->txq_entries = sfxge_tx_ring_entries;
|
||||
|
||||
/* Initialize MCDI to talk to the microcontroller. */
|
||||
DBGPRINT(sc->dev, "mcdi_init...");
|
||||
if ((error = sfxge_mcdi_init(sc)) != 0)
|
||||
goto fail4;
|
||||
|
||||
/* Probe the NIC and build the configuration data area. */
|
||||
DBGPRINT(sc->dev, "nic_probe...");
|
||||
if ((error = efx_nic_probe(enp)) != 0)
|
||||
goto fail5;
|
||||
|
||||
SYSCTL_ADD_STRING(device_get_sysctl_ctx(dev),
|
||||
SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
|
||||
OID_AUTO, "version", CTLFLAG_RD,
|
||||
|
@ -861,14 +861,14 @@ sfxge_create(struct sfxge_softc *sc)
|
|||
efx_nvram_fini(enp);
|
||||
|
||||
fail6:
|
||||
fail_tx_ring_entries:
|
||||
fail_rx_ring_entries:
|
||||
efx_nic_unprobe(enp);
|
||||
|
||||
fail5:
|
||||
sfxge_mcdi_fini(sc);
|
||||
|
||||
fail4:
|
||||
fail_tx_ring_entries:
|
||||
fail_rx_ring_entries:
|
||||
sc->enp = NULL;
|
||||
efx_nic_destroy(enp);
|
||||
SFXGE_EFSYS_LOCK_DESTROY(&sc->enp_lock);
|
||||
|
|
Loading…
Reference in a new issue