[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <49D51B0C.3040307@zytor.com>
Date: Thu, 02 Apr 2009 13:07:40 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Len Brown <lenb@...nel.org>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
"Michael K. Johnson" <johnsonm@...th.com>,
Justin Forbes <jmforbes@...uxtx.org>,
Jordan Hargrave <Jordan_Hargrave@...l.com>,
Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-acpi@...r.kernel.org
Subject: Re: [GIT PULL] x86 setup BIOS workarounds
Len Brown wrote:
>
> At the risk of rushing to the defense of the ACPI spec...
>
> This does not look like a backwards incompatible change to me.
>
> In ACPI 2.0, size of 20 is always returned, and it would
> be a Linux bug if we examined the undefined values after byte 19.
>
> In ACPI 3.0, byte 20 is now defined. So if the BIOS returns
> a size >= 21, we are permitted to examine byte 20.
>
> So I agree with the test above, but I do not agree with the comment.
>
If you look at the details of the ACPI spec, this flag is explicitly
specified so that the BIOS can always return a fixed number of entries.
Now, a clever BIOS could of course skip these entries if the OS only
requests 20 bytes -- but if it can do that, it could just equally well
have *always* skipped those entries! So the flag is useless.
However, the ACPI 3 spec is written so to actively lead people into
implement things this way, and given BIOS developer track records, they
would simply truncate the result to 20 bytes if the size passed in is
20. This, of course, means that it is now reporting an invalid entry,
without retaining the information that it is invalid...
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists