aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/flush.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/flush.c')
-rw-r--r--arch/arm/mm/flush.c8
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