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;