Re: 2.6.26.6-rt11: BUGs (sleeping function called from invalidcontext)
From: Steven Rostedt
Date: Fri Jan 16 2009 - 15:42:19 EST
On Fri, 16 Jan 2009, Fernando Lopez-Lezcano wrote:
> On Fri, 2008-11-07 at 14:01 -0500, Steven Rostedt wrote:
> > Peter, I think we've seen this before. It is the highmem code sleeping.
> >
> > On Fri, 7 Nov 2008, Fernando Lopez-Lezcano wrote:
> >
> > > Three BUGs while booting 2.6.26.7 + rt11 (same hardware: no problems
> > > with 2.6.24.7-rt21):
> > >
> > > Nov 7 10:31:19 host kernel: BUG: sleeping function called from invalid
> > > context IRQ-22(540) at arch/x86/mm/highmem_32.c:8
> > > Nov 7 10:31:19 host kernel: in_atomic():0 [00000000], irqs_disabled():1
> > > Nov 7 10:31:19 host kernel: Pid: 540, comm: IRQ-22 Not tainted
> > > 2.6.26.7-1.rt11.1fc9.ccrma.i686.rt #1
> > > Nov 7 10:31:19 host kernel: [<c041ff88>] __might_sleep+0xe8/0xed
> > > Nov 7 10:31:19 host kernel: [<c041cd55>] kmap+0x42/0x55
> >
> > As here.
>
> Still happening in 2.6.26.8-rt13...
Fernando,
Thanks for reporting this. Looks like we need to fix the ata driver:
2.6.26.8-rt13:
drivers/ata/libata-sff.c:
ata_sff_hsm_move()
calls ata_pio_sectors(), calls
ata_pio_sector()
/* FIXME: use a bounce buffer */
local_irq_save(flags);
buf = kmap_atomic(page, KM_IRQ0);
This code is in 2.6.24-rt but in libata-core.c
It is slightly different, prehaps you were just lucky?
-- Steve
--
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/