Messages in this thread Patch in this message | | | From | Ivan Hu <> | Subject | [PATCH] ACPI: thermal: extend the acpi maximum handles for _PSL method | Date | Wed, 9 Aug 2023 17:44:51 +0800 |
| |
Several platforms encountered the following kernel message: ACPI: \_TZ_.BATZ: Invalid passive threshold
This issue arises due to the failure of the acpi_evaluate_reference function in drivers/acpi/thermal.c while evaluating the ACPI _PSL method.
status = acpi_evaluate_reference(tz->device->handle, "_PSL", NULL, &devices); if (ACPI_FAILURE(status)) { acpi_handle_info(tz->device->handle, "Invalid passive threshold\n"); tz->trips.passive.valid = false; } else { tz->trips.passive.valid = true; }
However, the root cause lies in the _PSL method returning packages with a count exceeding ACPI_MAX_HANDLES in acpi_evaluate_reference.
As per the ACPI specification, the _PSL (Passive List) method is defined under a thermal zone and evaluates to a list of processor objects to be used for passive cooling. And it will return a variable-length Package containing a list of References to processor objects.
Signed-off-by: Ivan Hu <ivan.hu@canonical.com> --- include/acpi/acpi_bus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 23fbe4a16972..dc7b38826113 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -13,7 +13,7 @@ #include <linux/property.h> /* TBD: Make dynamic */ -#define ACPI_MAX_HANDLES 10 +#define ACPI_MAX_HANDLES 32 struct acpi_handle_list { u32 count; acpi_handle handles[ACPI_MAX_HANDLES]; -- 2.34.1
| |