ACPI bug

From: Bernard Sebastien (sebastien.bernard@cegetel.fr)
Date: Mon Apr 17 2000 - 08:00:48 EST


Hi,
I think I've found a bug in the pre4 patch and pre5.
The acpi FACP table is detected only is the FACP table is the last table of
the RSDT.
If the table is in first position the acpi_facp is initialized correctly but
at the second occurence of the loop,
it is cleared by the acpi_init_table.
This functions checks that the signature matches the expected one but if not
the case, the table is cleared.
This leads to no FACP table found error despite the face it is OK.
I checked the fix on a laptop and a desktop (ASUS P5B) and it's ok.

acpi.c :
-----------------------
        while (rsdt_entry_count) {
                struct acpi_table *dt = acpi_map_table(*rsdt_entry);
                if (!acpi_init_table(&acpi_facp, dt, 1)) {
                        struct acpi_facp *facp
                                = (struct acpi_facp*) acpi_facp.table;

                        // map DSDT if it exists
                        dt = acpi_map_table(facp->dsdt);
                        if (acpi_init_table(&acpi_dsdt, dt, 1))
                                acpi_unmap_table(dt);
                        else
+ break;
                }
                else {
                        acpi_unmap_table(dt);
                }

-----------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:10 EST