Re: [PATCH] ACPI: APEI: Fix ERST timeout unit conversion

Hanjun Guo <[email protected]> Tue, 28 Jul 2026 10:22:02 +0800
Newsgroups gmane.linux.kernel,gmane.linux.acpi.devel,gmane.linux.kernel.stable
Message-ID <[email protected]>
On 2026/7/22 2:25, Nirmoy Das wrote:
> The ACPI specification defines bits 63:32 returned by
> GET_EXECUTE_OPERATION_TIMINGS as the maximum execution time in
> microseconds. erst_get_timeout() instead multiplies the value by
> NSEC_PER_MSEC.
> 
> Use NSEC_PER_USEC to express the firmware-provided microsecond timeout
> in the nanosecond units expected by erst_timedout().
> 
> Fixes: fac475aab70b ("ACPI: APEI: Use ERST timeout for slow devices")
> Cc: [email protected]
> Assisted-by: Codex:gpt-5.6-sol
> Signed-off-by: Nirmoy Das <[email protected]>
> ---
>   drivers/acpi/apei/erst.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
> index bf65e34615314..15ab797641cfc 100644
> --- a/drivers/acpi/apei/erst.c
> +++ b/drivers/acpi/apei/erst.c
> @@ -108,7 +108,7 @@ static inline u64 erst_get_timeout(void)
>   
>   	if (erst_erange.attr & ERST_RANGE_SLOW) {
>   		timeout = ((erst_erange.timings & ERST_EXEC_TIMING_MAX_MASK) >>
> -			ERST_EXEC_TIMING_MAX_SHIFT) * NSEC_PER_MSEC;
> +			ERST_EXEC_TIMING_MAX_SHIFT) * NSEC_PER_USEC;

Good catch! In the latest ACPI 6.6 spec, it says:

[63:32] value in *microseconds* that the platform expects
would be the maximum amount of time it will take to
process and complete an EXECUTE_OPERATION.

Reviewed-by: Hanjun Guo <[email protected]>

Thanks
Hanjun