Index: sys/dev/acpica/acpi_cpu.c =================================================================== --- sys/dev/acpica/acpi_cpu.c +++ sys/dev/acpica/acpi_cpu.c @@ -180,7 +180,7 @@ static void acpi_cpu_cx_probe(struct acpi_cpu_softc *sc); static void acpi_cpu_generic_cx_probe(struct acpi_cpu_softc *sc); static int acpi_cpu_cx_cst(struct acpi_cpu_softc *sc); -static void acpi_cpu_startup(void *arg); +static void acpi_cpu_startup(void); static void acpi_cpu_startup_cx(struct acpi_cpu_softc *sc); static void acpi_cpu_cx_list(struct acpi_cpu_softc *sc); #if defined(__i386__) || defined(__amd64__) @@ -355,9 +355,6 @@ cpu_sysctl_tree = SYSCTL_ADD_NODE(&cpu_sysctl_ctx, SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, "cpu", CTLFLAG_RD, 0, "node for CPU children"); - - /* Queue post cpu-probing task handler */ - AcpiOsExecute(OSL_NOTIFY_HANDLER, acpi_cpu_startup, NULL); } /* @@ -446,6 +443,9 @@ for (i = 0; i < n; i++) bus_generic_attach(devices[i]); free(devices, M_TEMP); + + /* Run startup after all cpu is attached */ + acpi_cpu_startup(); } SYSINIT(acpi_cpu, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE, @@ -946,7 +946,7 @@ * Call this *after* all CPUs have been attached. */ static void -acpi_cpu_startup(void *arg) +acpi_cpu_startup(void) { struct acpi_cpu_softc *sc; int i;