diff options
Diffstat (limited to 'arch/arm/mm/copypage-v6.c')
| -rw-r--r-- | arch/arm/mm/copypage-v6.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 4127a7bddfe..841f355319b 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c @@ -41,6 +41,14 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to,  	kfrom = kmap_atomic(from, KM_USER0);  	kto = kmap_atomic(to, KM_USER1);  	copy_page(kto, kfrom); +#ifdef CONFIG_HIGHMEM +	/* +	 * kmap_atomic() doesn't set the page virtual address, and +	 * kunmap_atomic() takes care of cache flushing already. +	 */ +	if (page_address(to) != NULL) +#endif +		__cpuc_flush_dcache_page(kto);  	kunmap_atomic(kto, KM_USER1);  	kunmap_atomic(kfrom, KM_USER0);  }  |