[PATCH] fix ACPI poweroff in 2.4.25-rc2

From: Willy Tarreau
Date: Sun Feb 15 2004 - 05:48:08 EST


Hi Len,

based on your suggestions, I've read several bug reports about poweroff
problems. I discovered that some people had to pass "nolapic" to make it
operational. I tried the same on my VAIO and it worked. I also found that
other people had to call the old acpi_suspend(ACPI_STATE_S5) code instead
of the new one in acpi_power_off().

So I compared acpi_suspend() with the new code, and noticed that acpi_suspend()
calls acpi_system_save_state() before doing acpi_enter_sleep_state_prep(). This
function is responsible for sending PM events to all system devices, it seems.
Thus, I inserted this call in acpi_poweroff() and it now works (on the VAIO
at least). Does it make sense ? I have yet to test it on other systems, but
if people with poweroff problems could try this patch on top of 2.4.25-rc2,
it would be interesting. Perhaps it could get its way into mainline before
2.4.25 ? Please note that with this one, it's no longer necessary to use
"nolapic" on the command line (for my notebook at least).

Regards,
Willy

--- linux-2.4.25-rc2/drivers/acpi/system.c Wed Nov 19 15:31:22 2003
+++ linux-2.4.25-rc2-acpi/drivers/acpi/system.c Sun Feb 15 11:38:17 2004
@@ -95,6 +95,7 @@
{
if (unlikely(in_interrupt()))
BUG();
+ acpi_system_save_state(ACPI_STATE_S5);
acpi_enter_sleep_state_prep(ACPI_STATE_S5);
ACPI_DISABLE_IRQS();
acpi_enter_sleep_state(ACPI_STATE_S5);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/