Blob Blame History Raw
From: Paul Menzel <pmenzel@molgen.mpg.de>
Date: Mon, 11 Apr 2022 20:59:00 +0200
Subject: ACPICA: executer/exsystem: Inform users about ACPI spec violation
Patch-mainline: v5.19-rc1
Git-commit: ace8f1c54a02b96036b50defa9d842c10292b6bb
References: jsc#PED-1408

ACPICA commit 05ba545ce7859392250b18c10081db25c90ed8d7

Values greater than 100 microseconds violate the ACPI specification, so
warn users about it.

From ACPI Specification version 6.2 Errata A, 19.6.128 *Stall (Stall for
a Short Time)*:

> The implementation of Stall is OS-specific, but must not relinquish
> control of the processor. Because of this, delays longer than 100
> microseconds must use Sleep instead of Stall.

Link: https://github.com/acpica/acpica/commit/05ba545c
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reported-by: kernel test robot <lkp@intel.com>
Acked-by: Lee, Chun-Yi <jlee@suse.com>
---
 drivers/acpi/acpica/exsystem.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/drivers/acpi/acpica/exsystem.c
+++ b/drivers/acpi/acpica/exsystem.c
@@ -137,6 +137,11 @@ acpi_status acpi_ex_system_do_stall(u32
 			    "Time parameter is too large (%u)", how_long_us));
 		status = AE_AML_OPERAND_VALUE;
 	} else {
+		if (how_long_US > 100) {
+			ACPI_WARNING((AE_INFO,
+				      "Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.",
+				      how_long_us));
+		}
 		acpi_os_stall(how_long_us);
 	}