found 691902 linux/3.6.4-1~experimental.1
quit

Janne Boman wrote:

> acpidump & dmesg attached
> 3.6 from experimental did not work...

Thanks for checking so quickly.  By "did not work", you mean that
after booting that kernel, shutting down caused the computer to
reboot, right?

Please test the pre-compiled 3.2.13-1 and 3.2.14-1 packages from
<http://snapshot.debian.org/package/linux-2.6/>, or if you prefer,
please test the attached patch against a 3.7-rc3 or newer kernel, for
example by using the following directions:

 0. prerequisites
        apt-get install git build-essential

 1. get the kernel history, if you don't already have it
        git clone \
          git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

 2. configure, build, test
        cd linux
        git fetch origin
        git checkout origin/master
        cp /boot/config-3.6-trunk-amd64 .config; # stock configuration
        scripts/config --disable DEBUG_INFO
        make localmodconfig; # optional: minimize configuration
        make deb-pkg; # optionally with -j<num> for parallel build
        dpkg -i ../<name of package>; # as root
        shut down, unplug, remove battery, wait a few seconds
        restore power, boot
        shutdown -h now

    Hopefully it reproduces the bug, so

 3. try the patch
        cd linux
        git revert 41c7f7424259
        :wq
        make deb-pkg; # maybe with -j4
        dpkg -i ../<name of package>; # as root
        ... power down completely, test it ...

Hope that helps,
Jonathan
From: Jonathan Nieder <jrnie...@gmail.com>
Date: Sat, 3 Nov 2012 10:58:20 -0700
Subject: Revert "rtc: Disable the alarm in the hardware (v2)"

This reverts commit 41c7f7424259ff11009449f87c95656f69f9b186,
which should tell us whether Alessandro will want to know about
these shutdown failures.

Not signed off, only for testing.
---
 drivers/rtc/interface.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
index 9592b936b71b..c11596b9ba4e 100644
--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -782,14 +782,6 @@ static int rtc_timer_enqueue(struct rtc_device *rtc, 
struct rtc_timer *timer)
        return 0;
 }
 
-static void rtc_alarm_disable(struct rtc_device *rtc)
-{
-       if (!rtc->ops || !rtc->ops->alarm_irq_enable)
-               return;
-
-       rtc->ops->alarm_irq_enable(rtc->dev.parent, false);
-}
-
 /**
  * rtc_timer_remove - Removes a rtc_timer from the rtc_device timerqueue
  * @rtc rtc device
@@ -811,10 +803,8 @@ static void rtc_timer_remove(struct rtc_device *rtc, 
struct rtc_timer *timer)
                struct rtc_wkalrm alarm;
                int err;
                next = timerqueue_getnext(&rtc->timerqueue);
-               if (!next) {
-                       rtc_alarm_disable(rtc);
+               if (!next)
                        return;
-               }
                alarm.time = rtc_ktime_to_tm(next->expires);
                alarm.enabled = 1;
                err = __rtc_set_alarm(rtc, &alarm);
@@ -877,8 +867,7 @@ again:
                err = __rtc_set_alarm(rtc, &alarm);
                if (err == -ETIME)
                        goto again;
-       } else
-               rtc_alarm_disable(rtc);
+       }
 
        mutex_unlock(&rtc->ops_lock);
 }
-- 
1.8.0

Reply via email to