From: Ducrot B. <du...@po...> - 2003-10-31 11:09:09
|
On Tue, Oct 28, 2003 at 09:06:36PM -0500, Adam Kessel wrote: > I posted this recently to lkml, but got no response, so I thought I would > report it here as well.[1] > > In 2.4.22-rc2, ACPI poweroff worked fine on the HP OmniBook. > > Since 2.4.22, all the way up to 2.4.23-pre8, the system fails to > shutdown--the process gets to "power off" and hangs there. It is > necessary to do a hard shut down to turn the system off. > > There is no problem with rebooting. > > Apparently this effects a number of HP laptops, although I have only > verified it on the OmniBook 500.[2] > > This problem is not present in 2.6.0-test9. > > I am using force=acpi as required since I have an older BIOS. Apparently You mean acpi=force, correct? > the problem occurs in OmniBook laptops they have newer BIOSes as well. > > I expect this is related to the Sony VAIO problem discussed this month on > this list as well.[3] Could you please test this patch? The problem being that we power down some devices twice. --- linux-2.4.23-pre9/drivers/acpi/system.c 2003/10/31 08:09:10 1.1 +++ linux-2.4.23-pre9/drivers/acpi/system.c 2003/10/31 10:36:35 @@ -31,6 +31,7 @@ #include <linux/spinlock.h> #include <linux/poll.h> #include <linux/delay.h> +#include <linux/interrupt.h> #include <linux/sysrq.h> #include <linux/compatmac.h> #include <linux/proc_fs.h> @@ -92,7 +93,13 @@ static void acpi_power_off (void) { - acpi_suspend(ACPI_STATE_S5); + if (unlikely(in_interrupt())) + BUG(); + acpi_enter_sleep_state_prep(ACPI_STATE_S5); + ACPI_DISABLE_IRQS(); + acpi_enter_sleep_state(ACPI_STATE_S5); + + printk(KERN_EMERG "ACPI: can not power off machine\n"); } #endif /*CONFIG_PM*/ -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. |