From b1ac8feb4775c1da0bc76cc085593ae697606924 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Mon, 20 Oct 2003 15:54:43 -0400 Subject: [PATCH] [ACPI] Broken fan detection prevents booting (Shaohua David Li) http://bugme.osdl.org/show_bug.cgi?id=1185 --- drivers/acpi/power.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index f83a630ec7dc8..4ba069e131d27 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c @@ -337,6 +337,9 @@ acpi_power_transition ( if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3)) return_VALUE(-EINVAL); + if ((device->power.state < ACPI_STATE_D0) || (device->power.state > ACPI_STATE_D3)) + return_VALUE(-ENODEV); + cl = &device->power.states[device->power.state].resources; tl = &device->power.states[state].resources; @@ -359,8 +362,6 @@ acpi_power_transition ( goto end; } - device->power.state = state; - /* * Then we dereference all power resources used in the current list. */ @@ -370,6 +371,8 @@ acpi_power_transition ( goto end; } + /* We shouldn't change the state till all above operations succeed */ + device->power.state = state; end: if (result) ACPI_DEBUG_PRINT((ACPI_DB_WARN, -- 2.53.0