lkml.org 
[lkml]   [2005]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.6.11-mm2
Stefano Rivoir <s.rivoir@gts.it> wrote:
>
> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11/2.6.11-mm2/
>
> Hi Andrew
>
> With 2.6.11-mm series, "acpi_poweroff called" problem is back again (it
> disappeared in 2.6.11-rc-mm and actually never happend in Linus' tree).
> So when you shutdown, you have to unplug power cord or so to switch off
> because the system hangs after that message is displayed.
>

Does the below fix it?

If so, sorry, this patch was dropped because it just does everything the
wrong way, and the acpi guys are cooking up some scheme to fix it for real.



From: "Marcos D. Marado Torres" <marado@student.dei.uc.pt>

From: "Barry K. Nathan" <barryn@pobox.com>

On Tue, Feb 08, 2005 at 08:54:06PM -0800, Andrew Morton wrote:
> "Marcos D. Marado Torres" <marado@student.dei.uc.pt> wrote:
> >
> > Please add to -mm the patch in attachment, since it solves the old
> > acpi_power_off bug...
>
> What acpi_power_off bug? And how does it solve it?

Here's the observed bug that the patch is trying to fix:
http://bugme.osdl.org/show_bug.cgi?id=4041

What Marcos posted is a typo-corrected version of Eric Biederman's
patch:
http://marc.theaimsgroup.com/?l=linux-kernel&m=110665542929525&w=2

In Eric's own words, the patch "needs some work before it goes into a
mainline kernel". AFAICT it's more of a proof-of-concept, just to see if
Eric's on the right track...

This is the motivation behind the patch:
http://marc.theaimsgroup.com/?l=linux-kernel&m=110665405402747&w=2


Signed-off-by: Andrew Morton <akpm@osdl.org>
---
25-akpm/drivers/acpi/sleep/poweroff.c | 23 +++++++++++++++++++++--
25-akpm/drivers/base/power/shutdown.c | 7 +++++++
2 files changed, 28 insertions(+), 2 deletions(-)
diff -puN drivers/acpi/sleep/poweroff.c~acpi_power_off-bug-fix drivers/acpi/sleep/poweroff.c
--- 25/drivers/acpi/sleep/poweroff.c~acpi_power_off-bug-fix 2005-02-23 01:48:08.000000000 -0800
+++ 25-akpm/drivers/acpi/sleep/poweroff.c 2005-02-23 01:48:08.000000000 -0800
@@ -7,18 +7,37 @@

#include <linux/pm.h>
#include <linux/init.h>
+#include <linux/kernel.h>
#include <acpi/acpi_bus.h>
#include <linux/sched.h>
#include "sleep.h"

static void
+acpi_power_off_prepare(void)
+{
+ if (system_state == SYSTEM_POWER_OFF) {
+ acpi_wakeup_gpe_poweroff_prepare();
+ acpi_enter_sleep_state_prep(ACPI_STATE_S5);
+ }
+}
+
+void
+do_acpi_power_off_prepare(void)
+{
+ if (!acpi_disabled) {
+ acpi_power_off_prepare();
+ }
+}
+
+
+static void
acpi_power_off (void)
{
printk("%s called\n",__FUNCTION__);
+#if 0 /* This should be made redundant by other patches.. */
/* Some SMP machines only can poweroff in boot CPU */
set_cpus_allowed(current, cpumask_of_cpu(0));
- acpi_wakeup_gpe_poweroff_prepare();
- acpi_enter_sleep_state_prep(ACPI_STATE_S5);
+#endif
ACPI_DISABLE_IRQS();
acpi_enter_sleep_state(ACPI_STATE_S5);
}
diff -puN drivers/base/power/shutdown.c~acpi_power_off-bug-fix drivers/base/power/shutdown.c
--- 25/drivers/base/power/shutdown.c~acpi_power_off-bug-fix 2005-02-23 01:48:08.000000000 -0800
+++ 25-akpm/drivers/base/power/shutdown.c 2005-02-23 01:48:08.000000000 -0800
@@ -62,6 +62,13 @@ void device_shutdown(void)
}
up_write(&devices_subsys.rwsem);

+#ifdef CONFIG_ACPI
+ {
+ extern void do_acpi_power_off_prepare(void);
+ do_acpi_power_off_prepare();
+ }
+#endif
+
sysdev_shutdown();
}

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

\
 
 \ /
  Last update: 2005-03-22 14:11    [from the cache]
©2003-2011 Jasper Spaans