diff options
author | Hans de Goede <hdegoede@redhat.com> | 2018-03-15 02:13:03 +0300 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-03-18 20:52:00 +0300 |
commit | e7c2c3c909c0bda8ebebfc0a11c3d94745e9b043 (patch) | |
tree | 2b4e29777f475ec72ba92ee01c9cc58ff23de410 /drivers/acpi/acpica/dbdisply.c | |
parent | 816772412101bd41fdab01aa7ce575b3a6392cd4 (diff) | |
download | linux-e7c2c3c909c0bda8ebebfc0a11c3d94745e9b043.tar.xz |
ACPICA: Remove calling of _STA from acpi_get_object_info()
As the documentatuon above its declaration indicates, acpi_get_object_info()
is intended for early probe usage and as such should not call any methods
which may rely on op_regions, before this commit it was also calling _STA,
which on some systems does rely on op_regions.
Calling _STA before things are ready leads to errors such as these
(under Linux, on some hardware):
[ 0.123579] ACPI Error: No handler for Region [ECRM] (00000000ba9edc4c)
[generic_serial_bus] (20170831/evregion-166)
[ 0.123601] ACPI Error: Region generic_serial_bus (ID=9) has no handler
(20170831/exfldio-299)
[ 0.123618] ACPI Error: Method parse/execution failed
\_SB.I2C1.BAT1._STA, AE_NOT_EXIST (20170831/psparse-550)
End 2015 support for the _SUB method was removed for exactly the same
reason. Removing current_status from struct acpi_device_info only has a limited
impact. Within ACPICA it is only used by 2 debug messages, both
of which are modified to no longer print it with this commit.
Outside of ACPICA, there was one user in Linux, which has been patched to
no longer use current_status in Torvald's current master.
I've not checked if free_BSD or others are using the current_status field.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/dbdisply.c')
-rw-r--r-- | drivers/acpi/acpica/dbdisply.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/acpi/acpica/dbdisply.c b/drivers/acpi/acpica/dbdisply.c index 7df920cda77d..55d6f386c063 100644 --- a/drivers/acpi/acpica/dbdisply.c +++ b/drivers/acpi/acpica/dbdisply.c @@ -642,9 +642,8 @@ void acpi_db_display_object_type(char *object_arg) return; } - acpi_os_printf("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n", - ACPI_FORMAT_UINT64(info->address), - info->current_status, info->flags); + acpi_os_printf("ADR: %8.8X%8.8X, Flags: %X\n", + ACPI_FORMAT_UINT64(info->address), info->flags); acpi_os_printf("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n", info->highest_dstates[0], info->highest_dstates[1], |