Re: [2.6.31-git17] WARNING: at kernel/hrtimer.c:648 hres_timers_resume+0x40/0x50()/WARNING: at drivers/base/sys.c:353 __sysdev_resume+0xc3/0xe0()

From: Yong Zhang
Date: Sun Sep 27 2009 - 21:53:28 EST


On Sun, Sep 27, 2009 at 11:46 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> On Sunday 27 September 2009, Yong Zhang wrote:
>> On Sun, Sep 27, 2009 at 6:25 PM, Maciej Rutecki
>> <maciej.rutecki@xxxxxxxxx> wrote:
>> > 2009/9/27 Yong Zhang <yong.zhang0@xxxxxxxxx>:
>> >>
>> >> Oops, TABLE is corrupted. Please use the attachment.
>> >
>> > kernel/time/timekeeping.c: In function âtimekeeping_resumeâ:
>> > kernel/time/timekeeping.c:577: error: âxtime_locksâ undeclared (first
>> > use in this function)
>> > kernel/time/timekeeping.c:577: error: (Each undeclared identifier is
>> > reported only once
>> > kernel/time/timekeeping.c:577: error: for each function it appears
>> > in.)
>> > make[3]: *** [kernel/time/timekeeping.o] BÅÄd 1
>> > make[2]: *** [kernel/time] BÅÄd 2
>> >
>> >
>> > I change:
>> > write_seqlock(&xtime_locks);
>> > to:
>> > write_seqlock(&xtime_lock);
>> >
>>
>> Oh, typo error.
>>
>> > Corrected patch in attachment.
>> >
>> > First warning has gone, but still I have this:
>> > [ Â120.868049] SMP alternatives: switching to UP code
>> > [ Â120.872570] CPU0 attaching NULL sched-domain.
>> > [ Â120.872574] CPU1 attaching NULL sched-domain.
>> > [ Â120.872581] CPU0 attaching NULL sched-domain.
>> > [ Â120.872787] CPU1 is down
>> > [ Â120.872846] Extended CMOS year: 2000
>> > [ Â120.872945] PM: Creating hibernation image:
>> > [ Â120.876009] PM: Need to copy 107120 pages
>> > [ Â120.872009] PM: Restoring platform NVS memory
>> > [ Â120.872009] CPU0: Thermal monitoring handled by SMI
>> > [ Â120.872009] Extended CMOS year: 2000
>> > [ Â120.872009] ------------[ cut here ]------------
>> > [ Â120.872009] WARNING: at drivers/base/sys.c:353
>> > __sysdev_resume+0xc3/0xe0()
>> > [ Â120.872009] Hardware name: HP Compaq nx6310 (EY501ES#AKD)
>> > [ Â120.872009] Interrupts enabled after timekeeping_resume+0x0/0x1c0
>>
>> Irq is enabled after timekeeping_resume(), the previous patch do something
>> sensible. But we even don't know when the irq is enabled. such as in
>> timekeeping_resume() or before enter timekeeping_resume(). But it
>> seem that this is not due to timekeeping_resume(). Instead I'm afraid
>> it's caused by buggy driver.
>
> Interrupts are disabled by the suspend core code right before sysdev_suspend(),

You are quite right. Thanks for your clarification.

-Yong

> so device drivers cannot make this happen. ÂOne of the sysdevs is doing this.
>
> Thanks,
> Rafael
> --
> 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/