1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

Move the intrhook release to later in the function so that GEOM knows to wait longer

for possible root devices to come online.  This fixes a race that seems to be
triggered by EARLY_AP_STARTUP.

Submitted by:	cgull@glup.org
This commit is contained in:
Scott Long 2017-09-08 16:52:59 +00:00
parent b906c1a02a
commit cc336c7805
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=323317

View File

@ -418,9 +418,6 @@ aac_startup(void *arg)
sc = (struct aac_softc *)arg;
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
/* disconnect ourselves from the intrhook chain */
config_intrhook_disestablish(&sc->aac_ich);
mtx_lock(&sc->aac_io_lock);
aac_alloc_sync_fib(sc, &fib);
@ -437,12 +434,15 @@ aac_startup(void *arg)
aac_release_sync_fib(sc);
mtx_unlock(&sc->aac_io_lock);
/* mark the controller up */
sc->aac_state &= ~AAC_STATE_SUSPEND;
/* poke the bus to actually attach the child devices */
if (bus_generic_attach(sc->aac_dev))
device_printf(sc->aac_dev, "bus_generic_attach failed\n");
/* mark the controller up */
sc->aac_state &= ~AAC_STATE_SUSPEND;
/* disconnect ourselves from the intrhook chain */
config_intrhook_disestablish(&sc->aac_ich);
/* enable interrupts now */
AAC_UNMASK_INTERRUPTS(sc);