On Fri, 31 Jul 2015, [email protected] wrote:
> >Description:
> After upgrading 5.7-stable to the latest (Jul 30) snapshot on my ASUS
> 1215N laptop,
> I am consistently getting a page fault on boot, just as root is
> mounted. Bug only
> affects GENERIC.MP. GENERIC (single processor) boots and works fine.
> The dmesg
> below is from the failed boot, but the other dumps are of necessity
> collected under
> the working single processor kernel.
...
> bios0: vendor American Megatrends Inc. version "0902" date 05/05/2011
...
> acpicpu0 at acpi0: C1(1000@1 mwait.1)
> acpicpu1 at acpi0: C1(1000@1 mwait.1)
> acpicpu2 at acpi0
> acpicpu3 at acpi0
Wow, that's broken AML, apparently violating the requirement for C-state
information to be provided for either all or none of the CPUs.
Try this diff...and then yell at your hardware vendor for a newer, less
broken BIOS.
Philip
Index: sys/dev/acpi/acpicpu.c
diff -u -p -r1.65 acpicpu.c
--- sys/dev/acpi/acpicpu.c 18 Jul 2015 15:20:13 -0000 1.65
+++ sys/dev/acpi/acpicpu.c 31 Jul 2015 20:28:02 -0000
@@ -490,12 +490,12 @@ acpicpu_getcst(struct acpicpu_softc *sc)
free(cx, M_DEVBUF, sizeof(*cx));
}
- if (aml_evalname(sc->sc_acpi, sc->sc_devnode, "_CST", 0, NULL, &res))
- return (1);
-
/* provide a fallback C1-via-halt in case _CST's C1 is bogus */
acpicpu_add_cstate(sc, ACPI_STATE_C1, CST_METH_HALT,
CST_FLAG_FALLBACK, 1, -1, 0);
+
+ if (aml_evalname(sc->sc_acpi, sc->sc_devnode, "_CST", 0, NULL, &res))
+ return (1);
aml_foreachpkg(&res, 1, acpicpu_add_cstatepkg, sc);
aml_freevalue(&res);