aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mm/copypage-xscale.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2007-01-02 18:50:57 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2007-01-02 18:50:57 -0800
commitb06b5a53adcc3ace1a82b324edf2b0c37e7be00e (patch)
tree627599b14a3652778f4ca1f8a42d6627a6c6c84f /arch/arm/mm/copypage-xscale.c
parentc6b33cc4e9882b44f1b0c36396f420076e04a4e2 (diff)
parentd02b161eda65528ad3e89d642e416c265c17ceb8 (diff)
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 4081/1: Add definition for TI Sync Serial Protocol [ARM] 4080/1: Fix for the SSCR0_SlotsPerFrm macro [ARM] Fix VFP initialisation issue for SMP systems [ARM] 4078/1: Fix ARM copypage cache coherency problems [ARM] 4077/1: iop13xx: fix __io() macro [ARM] 4074/1: Flat loader stack alignment [ARM] 4073/1: Prevent s3c24xx drivers from including asm/arch/hardware.h and asm/arch/irqs.h [ARM] 4071/1: S3C24XX: Documentation update [ARM] 4066/1: correct a comment about PXA's sched_clock range [ARM] 4065/1: S3C24XX: dma printk fixes [ARM] 4064/1: make pxa_get_cycles() static [ARM] 4063/1: ep93xx: fix IRQ_EP93XX_GPIO?MUX numbering
Diffstat (limited to 'arch/arm/mm/copypage-xscale.c')
-rw-r--r--arch/arm/mm/copypage-xscale.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index aea5da72359..2e455f82a4d 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -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_and_clear_bit(PG_dcache_dirty, &page->flags))
+ __flush_dcache_page(page_mapping(page), page);
+
spin_lock(&minicache_lock);
set_pte_ext(TOP_PTE(COPYPAGE_MINICACHE), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot), 0);