lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 16 Apr 2012 22:30:43 -0400
From:	Mark Lord <kernel@...savvy.com>
To:	John Stultz <john.stultz@...aro.org>
CC:	richard -rw- weinberger <richard.weinberger@...il.com>,
	Linux Kernel <linux-kernel@...r.kernel.org>,
	rtc-linux@...glegroups.com,
	Alessandro Zummo <a.zummo@...ertech.it>,
	Greg Kroah-Hartman <greg@...ah.com>, stable@...r.kernel.org,
	Rabin Vincent <rabin.vincent@...ricsson.com>
Subject: Re: [REGRESSION] rtc/interface.c: kills suspend-to-ram

On 12-04-16 05:43 PM, John Stultz wrote:
> On 04/16/2012 12:45 PM, John Stultz wrote:
>> On 04/16/2012 08:57 AM, Mark Lord wrote:
>>> On 12-04-16 11:49 AM, richard -rw- weinberger wrote:
>>>> On Mon, Apr 16, 2012 at 5:42 PM, Mark Lord<kernel@...savvy.com>  wrote:
>>>>> On 12-04-16 10:23 AM, richard -rw- weinberger wrote:
>>>>>> On Mon, Apr 16, 2012 at 3:55 PM, Mark Lord<kernel@...savvy.com>  wrote:
>>>>>>> On 12-04-16 12:36 AM, Mark Lord wrote:
>>>>>>>> Something recent has killed suspend-to-ram on a number of machines here.
>>>>>>>> The symptom is that they suspend, but immediately wake up and panic,
>>>>>>>> with just a black screen so no visible messages to go by.
>>>>>>>>
>>>>>>>> The patch below works around the issue -- making things work as they used to work.
>>>>>>>>
>>>>>>>> +++ linux/drivers/rtc/interface.c     2012-04-16 00:09:14.105387382 -0400
>>>>>>>> @@ -773,7 +773,7 @@
>>>>>>>>        if (!rtc->ops || !rtc->ops->alarm_irq_enable)
>>>>>>>>                return;
>>>>>>>>
>>>>>>>> -     rtc->ops->alarm_irq_enable(rtc->dev.parent, false);
>>>>>>>> +     //rtc->ops->alarm_irq_enable(rtc->dev.parent, false);  // Kills suspend on ZBOX HD-ID41U
>>>>>>>>   }
>>>>>
>>>>> How about the line above -- that's the commit that breaks things here.
>>>> Download Linus' GIT tree and use git blame. :-)
>>> Too steep a learning curve for a casual user.
>>> But google works:
>>>
>>> http://www.mail-archive.com/stable@vger.kernel.org/msg04391.html
>>
>> Thanks for the report and sorry for the trouble.  I'm trying to reproduce this locally. Can you
>> send me your .config?
> 
> Ok, so far I've not been able to reproduce anything like this with my atom x86_64 system (done a
> number of suspends both with and without RTC alarms queued to wake the system up).  Can you provide
> any more details about how you're triggering suspend when you see the problem?
> Do you have an RTC alarm set for some future time to wake up the system?
> I'm just trying to understand when rtc_alarm_disable is being called and causing the trouble in your
> case.
> 
> The original related issue with the earlier version of this patch was some hardware would wake up
> immediately after suspend if the rtc was set in the past (which is what was done to "disable" the
> alarm).  I suspect there is a similar hardware quirk we're dealing with that may require extra logic
> in the rtc-cmos.c alarm_irq_enable() function.


Thanks for looking into it, John.

I also spent many more hours digging away at it here today,
and I now understand (mostly) what is happening and why.

The code above introduces a new access to the RTC that never existed before.
For the case where the Alarm has never been enabled by software,
I believe the code above will still try to "disable" it.
That's the new behaviour we didn't have prior to this patch.

And.. on some of the systems I'm testing on, the BIOS setup has
the RTC Alarm "enabled", which means "under BIOS control",
as opposed to "disabled" which means "under software control".

It's the "under BIOS control" systems that the above patch breaks.

So I think the code may just need to be slightly more clever,
and not disable an Alarm that was never enabled by software in the first place.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ