summaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/dma-mapping.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-04-21 01:14:25 -0700
committerDavid S. Miller <davem@davemloft.net>2010-04-21 01:14:25 -0700
commit87eb367003887cdc81a5d183efea227b5b488961 (patch)
tree40f617e25a9364d573e3cd2189c9e7fa56c8a0fe /arch/arm/mm/dma-mapping.c
parentccb7c7732e2ceb4e81a7806faf1670be9681ccd2 (diff)
parent05d17608a69b3ae653ea5c9857283bef3439c733 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-6000.c net/core/dev.c
Diffstat (limited to 'arch/arm/mm/dma-mapping.c')
-rw-r--r--arch/arm/mm/dma-mapping.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 1351edc0b26..13fa536d82e 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -464,6 +464,11 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset,
vaddr += offset;
op(vaddr, len, dir);
kunmap_high(page);
+ } else if (cache_is_vipt()) {
+ pte_t saved_pte;
+ vaddr = kmap_high_l1_vipt(page, &saved_pte);
+ op(vaddr + offset, len, dir);
+ kunmap_high_l1_vipt(page, saved_pte);
}
} else {
vaddr = page_address(page) + offset;