---
 arch/arm/mm/copypage-xscale.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: linux-2.6.19/arch/arm/mm/copypage-xscale.c
===================================================================
--- linux-2.6.19.orig/arch/arm/mm/copypage-xscale.c	2006-11-29 21:57:37.000000000 +0000
+++ linux-2.6.19/arch/arm/mm/copypage-xscale.c	2006-12-28 14:34:58.000000000 +0000
@@ -19,6 +19,7 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>
+#include <asm/cacheflush.h>
 
 #include "mm.h"
 
@@ -91,6 +92,11 @@ mc_copy_user_page(void *from, void *to)
 
 void xscale_mc_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr)
 {
+	struct page *page = virt_to_page(kfrom);
+
+	if (test_bit(PG_dcache_dirty, &page->flags))
+		__cpuc_flush_dcache_page(page_address(page));
+
 	spin_lock(&minicache_lock);
 
 	set_pte(TOP_PTE(COPYPAGE_MINICACHE), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot));
