summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-06-14 13:45:05 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-14 13:45:05 -0700
commitf44c2c9e073a578b2946bcf4127ffb041ee765b8 (patch)
treebc50359ad77181dc1fe83be10e7af83ecc9114ee
parent2cf4d4514d5b43c1f3b64bd0ec8b9853bde8f1dc (diff)
parent73be1591579084a8103a7005dd3172f3e9dd7362 (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 5545/2: add flush_kernel_dcache_page() for ARM
-rw-r--r--arch/arm/include/asm/cacheflush.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
index bb7d695f390..1a711ea8418 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -429,6 +429,14 @@ static inline void flush_anon_page(struct vm_area_struct *vma,
__flush_anon_page(vma, page, vmaddr);
}
+#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE
+static inline void flush_kernel_dcache_page(struct page *page)
+{
+ /* highmem pages are always flushed upon kunmap already */
+ if ((cache_is_vivt() || cache_is_vipt_aliasing()) && !PageHighMem(page))
+ __cpuc_flush_dcache_page(page_address(page));
+}
+
#define flush_dcache_mmap_lock(mapping) \
spin_lock_irq(&(mapping)->tree_lock)
#define flush_dcache_mmap_unlock(mapping) \