Re: sleeping functions called in invalid context during resume

Stephen Hemminger
2006-11-17T05:22:13Z

> Stephen Hemminger <shemminger@osdl.org> wrote:
>
> > Lots of sleeping while atomic warnings on 2.6.19-rc5
> > During resume I see the following:
> >
> >
> > platform floppy.0: EARLY resume
> > APIC error on CPU0: 00(00)
> > PM: Finishing wakeup.
> > BUG: sleeping function called from invalid context at drivers/base/power/resume.c:99
> > in_atomic():1, irqs_disabled():0
> >
> > Call Trace:
> > [<ffffffff80266117>] show_trace+0x34/0x47
> > [<ffffffff8026613c>] dump_stack+0x12/0x17
> > [<ffffffff803734e5>] device_resume+0x19/0x51
> > [<ffffffff80292157>] enter_state+0x19b/0x1b5
> > [<ffffffff802921cf>] state_store+0x5e/0x79
> > [<ffffffff802cc157>] sysfs_write_file+0xc5/0xf8
> > [<ffffffff80215059>] vfs_write+0xce/0x174
> > [<ffffffff802159a5>] sys_write+0x45/0x6e
> > [<ffffffff802593de>] system_call+0x7e/0x83
> > DWARF2 unwinder stuck at system_call+0x7e/0x83
> >

Ingo, the later version of your lockdep patch (with the x86_64 fix), worked.
There is nothing locked during these errors.

The problem was the APIC error is leaving preempt-disabled.

I have no idea what causes:

APIC error on CPU0: 00(00)

Is it an ACPI problem?