Messages in this thread | | | Date | Fri, 16 Jan 2009 15:41:54 -0500 (EST) | From | Steven Rostedt <> | Subject | Re: 2.6.26.6-rt11: BUGs (sleeping function called from invalid context) |
| |
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
| |