Re: Compaq Evo 510SFF and ACPI

Alexander Hoogerhuis
2003-07-04T10:22:20Z

Scott Duplichan <sduplichan-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> writes:

> Alexander Hoogerhuis <alexh-KJKxBnNiUAU@public.gmane.org> wrote:
>
> >I have a few Compaq Evo's that show the same symptom:
> >
> > ACPI: Searched entire block, no RSDP was found.
> > ACPI: RSDP located at physical address c00eaa10
> > RSD PTR v0 [COMPAQ]
> > __va_range(0xf7f7b40, 0x68): idx=10 mapped at ffff5000
> > ACPI table found: RSDT v1 [COMPAQ CPQ0050 8194.4656]
> > ACPI: Too big length in RSDT: 120
>
> 120 bytes minus 36 bytes leaves 84 bytes, or 21 table pointers.
> I think some versions of Linux have a limit on the number of
> tables that is smaller than 21. The ACPI spec lacks, among other
> things, any guideline on what the maximum number of tables is.
>

Here's the offending piece of code:

/*
* The number of tables is computed by taking the
* size of all entries (header size minus total
* size of RSDT) divided by the size of each entry
* (4-byte table pointers).
*/
tables = (header->length - sizeof(acpi_table_header)) / 4;

memcpy(&saved_rsdt, rsdt, sizeof(saved_rsdt));

if (saved_rsdt.header.length > sizeof(saved_rsdt)) {
printk(KERN_WARNING "ACPI: Too big length in RSDT: %d\n", saved_rsdt.header.length);
return -ENODEV;
}

...which then basically says what it found doesnt add up to what it
thinks it has?

mvh,
A
--
Alexander Hoogerhuis | alexh-rpjHciJLgqZBDgjK7y7TUQ@public.gmane.org
CCNP - CCDP - MCNE - CCSE | +47 908 21 485
"You have zero privacy anyway. Get over it." --Scott McNealy