Re: Linux 3.1.5/6 regression: fails to resume from suspend (bisected)
From: Bjarke Istrup Pedersen
Date: Thu Dec 29 2011 - 17:56:30 EST
2011/12/27 Philip Langdale <philipl@xxxxxxxxx>:
> Hi,
>
> After upgrading to 3.1.5, and still in 3.1.6, I found myself unable to
> resume from suspend. I did a bisect and identified the following change
> as the cause:
Hey,
I can confirm this breaks things.
My router box (a Soekris net5011-70) is unable to boot with this patch
applied (it hangs when control is passed onto init, with the text
"INIT:").
Reverting this patch makes it boot fine.
/Bjarke
> commit aeed6baa702a285cf03b7dc4182ffc1a7f4e4ed6
> Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Date: Fri Dec 2 16:02:45 2011 +0100
>
> clockevents: Set noop handler in clockevents_exchange_device()
>
> commit de28f25e8244c7353abed8de0c7792f5f883588c upstream.
>
> If a device is shutdown, then there might be a pending interrupt,
> which will be processed after we reenable interrupts, which causes
> the original handler to be run. If the old handler is the
> (broadcast) periodic handler the shutdown state might hang the
> kernel completely.
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
>
> diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c
> index e4c699d..13dfaab 100644
> --- a/kernel/time/clockevents.c
> +++ b/kernel/time/clockevents.c
> @@ -286,6 +286,7 @@ void clockevents_exchange_device(struct
> clock_event_device *old,
> * released list and do a notify add later.
> */
> if (old) {
> + old->event_handler = clockevents_handle_noop;
> clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED);
> list_del(&old->list);
> list_add(&old->list, &clockevents_released);
>
> If I undo this change in my 3.1.6 tree, I am then able to resume as
> before.
>
> This was also reported upstream at fedora but was not fully
> diagnosed:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=767248
>
> I wouldn't be surprised if it's related to the nvidia binary drivers
> in some way (I use them and so does the fedora bug reporter), but it's
> not practical to avoid them.
>
> --phil
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/