Re: 2.6.13-rc6: halt instead of reboot

From: Eric W. Biederman
Date: Fri Aug 26 2005 - 00:53:31 EST


Meelis Roos <mroos@xxxxxxxx> writes:

>> When skimming through the code I thought that reboot_thru_bios was the
>> default.
>
> My bad. I retested it and it's reboot=w was the one that works.
>
>> If you can't track this down we can at least dig up your board DMI ID
>> and put it in the list of systems that need to go through the BIOS to reboot.
>
> I have good news - it the ACPI merge commit
> 5028770a42e7bc4d15791a44c28f0ad539323807 that seems to break reboot. Also
> acpi=off works around it.
>
> So the "poweroff instead reboot" seems to be an ACPI regression :(

Does this small patch fix the problem for you?

In another bug fix we started calling acpi_sleep_prepare on the shutdown
path called by reboot/halt/poweroff, so the code would always be called with
interrupts enabled. This just modifies it so we only call this code
if we know we are going to power off the system.

That change was added in the patch you indicate as where the
regression started.

---

drivers/acpi/sleep/poweroff.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

7194b86c5e67aaf9ce8c25482441e87d700f057d
diff --git a/drivers/acpi/sleep/poweroff.c b/drivers/acpi/sleep/poweroff.c
--- a/drivers/acpi/sleep/poweroff.c
+++ b/drivers/acpi/sleep/poweroff.c
@@ -55,7 +55,11 @@ void acpi_power_off(void)

static int acpi_shutdown(struct sys_device *x)
{
- return acpi_sleep_prepare(ACPI_STATE_S5);
+ if (system_state == SYSTEM_POWER_OFF) {
+ /* Prepare if we are going to power off the system */
+ return acpi_sleep_prepare(ACPI_STATE_S5);
+ }
+ return 0;
}

static struct sysdev_class acpi_sysclass = {
-
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/