Re: [REGRESSION] rtc/interface.c: kills suspend-to-ram

From: Mark Lord
Date: Mon Apr 16 2012 - 09:55:49 EST

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
> }
> Last known working kernel was 3.2.11.
> The line above got added somewhere between it and 3.2.15,
> and is also present (no surprise) in newer kernels.
> The highest kernel I've tested for this is 3.3.2,
> which also fails until I nuke the line shown above.
> This is straight x86_64 (Atom) hardware, using rtc-cmos.
> I can re-test if anyone has a fix for this.
> Meanwhile, whatever patch put this into -stable probably
> ought to be reverted upstream and in -stable as well.

Speaking of which -- that batch of RTC updates is riddled with bugs.
For example, this beauty from rtc-mpc5121.c in the same update:

rtc->rtc = rtc_device_register("mpc5200-rtc", &op->dev,
&mpc5200_rtc_ops, THIS_MODULE);

rtc->rtc->uie_unsupported = 1; // <<<< Ooops NULL pointer >>>>

if (IS_ERR(rtc->rtc)) { // <<<< this needs to be earlier >>>>
err = PTR_ERR(rtc->rtc);
goto out_free_irq;

Can somebody show me how to identify the commit from the code?
I know which lines got changed, but don't know how to find
the corresponding commits in -git.

And once we do identify the commits, they really need a code review.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at