Re: [PATCH -rt] update kmap_atomic on !HIGHMEM

From: Ingo Molnar
Date: Wed Dec 27 2006 - 16:34:34 EST



plus on i386 the fix below is needed as well.

Ingo

---
include/asm-i386/highmem.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux/include/asm-i386/highmem.h
===================================================================
--- linux.orig/include/asm-i386/highmem.h
+++ linux/include/asm-i386/highmem.h
@@ -81,9 +81,9 @@ struct page *__kmap_atomic_to_page(void
* on PREEMPT_RT kmap_atomic() is a wrapper that uses kmap():
*/
#ifdef CONFIG_PREEMPT_RT
-# define kmap_atomic(page, type) kmap(page)
-# define kmap_atomic_pfn(pfn, type) kmap(pfn_to_page(pfn))
-# define kunmap_atomic(kvaddr, type) kunmap_virt(kvaddr)
+# define kmap_atomic(page, type) ({ pagefault_disable(); kmap(page); })
+# define kmap_atomic_pfn(pfn, type) kmap_atomic(pfn_to_page(pfn), type)
+# define kunmap_atomic(kvaddr, type) do { pagefault_enable(); kunmap_virt(kvaddr); } while (0)
# define kmap_atomic_to_page(kvaddr) kmap_to_page(kvaddr)
#else
# define kmap_atomic(page, type) __kmap_atomic(page, type)
-
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/