[AVR32] Don't use kmap() in flush_icache_page()
authorHaavard Skinnemoen <hskinnemoen@atmel.com>
Thu, 1 Mar 2007 15:32:31 +0000 (16:32 +0100)
committerHaavard Skinnemoen <hskinnemoen@atmel.com>
Wed, 7 Mar 2007 09:50:29 +0000 (10:50 +0100)
flush_icache_page() can be called from atomic context, so we can't
use kmap(). Use page_address() instead.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
arch/avr32/mm/cache.c

index fb13f72e9a0290430a45db2ff6a65dafe9c114b4..8f7b1c3cd0f94658fec53cea41f81c856a90aa24 100644 (file)
@@ -121,9 +121,8 @@ void flush_icache_range(unsigned long start, unsigned long end)
 void flush_icache_page(struct vm_area_struct *vma, struct page *page)
 {
        if (vma->vm_flags & VM_EXEC) {
-               void *v = kmap(page);
+               void *v = page_address(page);
                __flush_icache_range((unsigned long)v, (unsigned long)v + PAGE_SIZE);
-               kunmap(v);
        }
 }