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@xxxxxxxxxxxxx> --- 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