2006-10-17 23:19:20

by djwong

[permalink] [raw]
Subject: Re: ACPI: Processor native C-states using MWAIT

This patch breaks C-state discovery on my IBM IntelliStation Z30
because the return value of acpi_processor_get_power_info_fadt is not
assigned to "result" in the case that acpi_processor_get_power_info_cst
returns -ENODEV. Thus, if ACPI provides C-state data via the FADT and
not _CST (as is the case on this machine), we incorrectly exit the
function with -ENODEV after reading the FADT. The attached patch
sets the value of result so that we don't exit early.

Signed-off-by: Darrick J. Wong <[email protected]>

--

diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 526387d..5c118cb 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -962,7 +962,7 @@ static int acpi_processor_get_power_info

result = acpi_processor_get_power_info_cst(pr);
if (result == -ENODEV)
- acpi_processor_get_power_info_fadt(pr);
+ result = acpi_processor_get_power_info_fadt(pr);

if (result)
return result;