diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-20 11:03:35 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-20 11:03:35 +0000 |
commit | ee81e7a0a86a3b40837de4a5f514c2d3758af20e (patch) | |
tree | 7184b615779c427bd6a659f6c3dfe10f3512bfe0 /arch/arm/mm/flush.c | |
parent | 1ae1b5f053cf36bd0f913e83f3b136fec8152d4d (diff) | |
parent | 6d3e6d3640052cac958d61c44597cc216f6ee09f (diff) |
Merge branch 'kmap_atomic_fixes' of git://git.linaro.org/people/nico/linux
Diffstat (limited to 'arch/arm/mm/flush.c')
-rw-r--r-- | arch/arm/mm/flush.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 391ffae7509..c29f2839f1d 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c @@ -10,6 +10,7 @@ #include <linux/module.h> #include <linux/mm.h> #include <linux/pagemap.h> +#include <linux/highmem.h> #include <asm/cacheflush.h> #include <asm/cachetype.h> @@ -180,10 +181,10 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page) __cpuc_flush_dcache_area(addr, PAGE_SIZE); kunmap_high(page); } else if (cache_is_vipt()) { - pte_t saved_pte; - addr = kmap_high_l1_vipt(page, &saved_pte); + /* unmapped pages might still be cached */ + addr = kmap_atomic(page); __cpuc_flush_dcache_area(addr, PAGE_SIZE); - kunmap_high_l1_vipt(page, saved_pte); + kunmap_atomic(addr); } } |