Messages in this thread | | | Date | Thu, 15 Dec 2005 19:33:53 +0200 | From | "Michael S. Tsirkin" <> | Subject | kmap_atomic slot collision |
| |
Hi! I'm trying to use kmap_atomic from both interrupt and task context. My idea was to do local_irq_save and then use KM_IRQ0/KM_IRQ1: since I'm disabling interrupts I assumed that this should be safe. The relevant code is here: https://openib.org/svn/gen2/trunk/src/linux-kernel/infiniband/ulp/sdp/sdp_iocb.c
However, under stress I see errors from arch/i386/mm/highmem.c:42 if (!pte_none(*(kmap_pte-idx))) BUG();
Apparently, my routine, running from a task context, races with some other kernel code, and so I'm trying to use a slot that was not yet unmapped.
Anyone has an idea on what I could be doing wrong?
Thanks, -- MST - 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/
| |