diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-09-23 11:57:53 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-09-23 12:09:18 +0100 |
commit | 694c03715eeb39bc87467149dfea7cb75ba1c9ac (patch) | |
tree | fe49d31c59b4ec6f4c2ba88f7901cd5bb2cd2cbf /arch/arm/mm | |
parent | 840f654eec9cf6c54fe25d0a039b99b7d29ce4e4 (diff) |
Flush the D-cache during copy_user_highpage()
The I and D caches for copy-on-write pages on processors with
write-allocate caches become incoherent causing problems on application
relying on CoW for text pages (dynamic linker relocating symbols in a
text page). This patch flushes the D-cache for such pages (the I-cache
is handled during update_mmu_cache() when the page is first mapped).
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/copypage-v6.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 0e21c0767580..a2380ef4d6f0 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c @@ -36,6 +36,7 @@ static DEFINE_SPINLOCK(v6_lock); static void v6_copy_user_page_nonaliasing(void *kto, const void *kfrom, unsigned long vaddr) { copy_page(kto, kfrom); + __cpuc_flush_dcache_page(kto); } /* |