Messages in this thread | | | From | "Jakub W. Jozwicki" <> | Subject | Re: [PATCH 2.6.25.10 1/2] libata: fix locking for kmap_atomic | Date | Sun, 13 Jul 2008 15:17:51 +0200 |
| |
Sunday, 13 of July 2008 10:26:30 Andrew Morton napisał(a): > On Sun, 13 Jul 2008 01:27:36 +0200 "Jakub W. Jozwicki" <jozwicki@aster.pl> wrote: > > Change locking surrounding kmap_atomic from local_irqsave to > > local_irqsave_nort. This fixes issues with PREEMPT_RT. > > I assume this is a -rt kernel patch. > > > --- linux-2.6.25.10/drivers/ata/libata-core.c 2008-07-03 > > 05:46:47.000000000 +0200 > > +++ linux-2.6.25.10-rt7/drivers/ata/libata-core.c 2008-07-12 > > 23:59:33.132140258 +0200 > > @@ -5157,14 +5157,14 @@ > > unsigned long flags; > > > > /* FIXME: use a bounce buffer */ > > - local_irq_save(flags); > > + local_irq_save_nort(flags); > > eww. If we're going to have to do stuff like this in mainline then > there might be a revolt.
Sorry, this was for -rt only.
[ 17.012011] BUG: sleeping function called from invalid context IRQ-14(5732) at arch/x86/mm/highmem_32.c:8 [ 17.012011] in_atomic():0 [00000000], irqs_disabled():1 [ 17.012011] Pid: 5732, comm: IRQ-14 Not tainted 2.6.25.10-rtXXX #11 [ 17.012011] [<c0120fc4>] __might_sleep+0xf1/0xf8 [ 17.012011] [<c011c035>] kmap+0x47/0x5a [ 17.012011] [<c033e728>] ata_hsm_move+0x3d7/0x657 [ 17.012011] [<c0342fd6>] ata_interrupt+0x14e/0x1cb [ 17.012011] [<c015c72c>] handle_IRQ_event+0x4e/0xd1 [ 17.012011] [<c015d266>] do_irqd+0x126/0x224 [ 17.012011] [<c015d140>] ? do_irqd+0x0/0x224 [ 17.012011] [<c013ae9d>] kthread+0x3b/0x62 [ 17.012011] [<c013ae62>] ? kthread+0x0/0x62 [ 17.012011] [<c0108287>] kernel_thread_helper+0x7/0x10 [ 17.012011] =======================
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |