diff options
Diffstat (limited to 'arch/arm/mm/flush.c')
-rw-r--r-- | arch/arm/mm/flush.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 391ffae75098..2b269c955524 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
12 | #include <linux/pagemap.h> | 12 | #include <linux/pagemap.h> |
13 | #include <linux/highmem.h> | ||
13 | 14 | ||
14 | #include <asm/cacheflush.h> | 15 | #include <asm/cacheflush.h> |
15 | #include <asm/cachetype.h> | 16 | #include <asm/cachetype.h> |
@@ -17,7 +18,6 @@ | |||
17 | #include <asm/smp_plat.h> | 18 | #include <asm/smp_plat.h> |
18 | #include <asm/system.h> | 19 | #include <asm/system.h> |
19 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
20 | #include <asm/smp_plat.h> | ||
21 | 21 | ||
22 | #include "mm.h" | 22 | #include "mm.h" |
23 | 23 | ||
@@ -180,10 +180,10 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page) | |||
180 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); | 180 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); |
181 | kunmap_high(page); | 181 | kunmap_high(page); |
182 | } else if (cache_is_vipt()) { | 182 | } else if (cache_is_vipt()) { |
183 | pte_t saved_pte; | 183 | /* unmapped pages might still be cached */ |
184 | addr = kmap_high_l1_vipt(page, &saved_pte); | 184 | addr = kmap_atomic(page); |
185 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); | 185 | __cpuc_flush_dcache_area(addr, PAGE_SIZE); |
186 | kunmap_high_l1_vipt(page, saved_pte); | 186 | kunmap_atomic(addr); |
187 | } | 187 | } |
188 | } | 188 | } |
189 | 189 | ||