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);

Reply via email to