Re: [PATCH 4/4] ACPI: Make sure the FADT is at least rev 2 before using the reset register

Len Brown
2011-03-23T04:01:58Z

On Fri, 11 Mar 2011, Matthew Garrett wrote:

> The reset register was only introduced with version 2 of the FADT, so we
> should check that the FADT revision before trusting its contents.
>
> Signed-off-by: Matthew Garrett <mjg@redhat.com>
> ---
> drivers/acpi/reboot.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
> index 4870aaa..a6c77e8b 100644
> --- a/drivers/acpi/reboot.c
> +++ b/drivers/acpi/reboot.c
> @@ -15,6 +15,11 @@ void acpi_reboot(void)
>
> rr = &acpi_gbl_FADT.reset_register;
>
> + /* ACPI reset register was only introduced with v2 of the FADT */
> +
> + if (acpi_gbl_FADT.header.revision < 2)
> + return;
> +

Isn't this check redundant with the check just below this hunk?

> /* Is the reset register supported? The spec says we should be
> * checking the bit width and bit offset, but Windows ignores
> * these fields */

if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER))
return;

For it not to be redundant, there would have to be FADTs out there
of revision 1 that set what was then a reserved bit in the flags.

thanks,
Len Brown, Intel Open Source Technology Center