From: Andrew Morton Signed-off-by: Andrew Morton --- arch/i386/mm/highmem.c | 6 ++++++ 1 file changed, 6 insertions(+) diff -puN arch/i386/mm/highmem.c~x86-kmap_atomic-debugging arch/i386/mm/highmem.c --- a/arch/i386/mm/highmem.c~x86-kmap_atomic-debugging +++ a/arch/i386/mm/highmem.c @@ -31,6 +31,12 @@ void *kmap_atomic(struct page *page, enu enum fixed_addresses idx; unsigned long vaddr; + if ((type == KM_IRQ0 || type == KM_IRQ1) && !irqs_disabled()) { + printk("%s: local irqs are enabled while using KM_IRQn\n", + __FUNCTION__); + dump_stack(); + } + /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ pagefault_disable(); if (!PageHighMem(page)) _