ACPI / sysfs: Fix incorrect ACPI tables walk in acpi_tables_sysfs_init()
authorJeremy Compostella <jeremy.compostella@intel.com>
Thu, 21 Nov 2013 10:20:23 +0000 (11:20 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 21 Nov 2013 13:19:33 +0000 (14:19 +0100)
commitde03beedb43fa1fd26792a4e502eeacbf5a6bade
tree13f16c658e3c48d29f183f49397f39d0be8edc9d
parent083ca8c4172585409170dac9955a1da8137fef49
ACPI / sysfs: Fix incorrect ACPI tables walk in acpi_tables_sysfs_init()

When executing on an ACPI Hardware Reduced hardware, all the ACPI
tables are not exposed in sysfs due to the fact that FACS is
silently ignored by the kernel in the ACPI hardware reduced mode
and, moreover, the acpi_tables_sysfs_init() ACPI table walk
is buggy and stops too soon.

The acpi_tables_sysfs_init() function should rely on the acpi_status
return value from acpi_get_table_by_index() to decide whether or not
to stop the iteration (the walk should only be terminated when that
value is AE_BAD_PARAMETER).  This way, when running in an ACPI Harware
Reduced environment (where the FACS table is silently ignored by the
kernel) or if some ACPI tables are not correctly memory mapped or
have bad checksums, it will still walk through the remaining tables
that may be correct.

[rjw: Changelog]
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/sysfs.c