Răsfoiți Sursa

[ARM] nommu: Provide a simple flush_dcache_page implementation

nommu doesn't require a complex flush_dcache_page implementation
like the MMU-ful CPUs do, so provide a simplified version in nommu.c
and omit flush.c from the build as appropriate.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 19 ani în urmă
părinte
comite
e6b1b38c52
2 a modificat fișierele cu 10 adăugiri și 2 ștergeri
  1. 2 2
      arch/arm/mm/Makefile
  2. 8 0
      arch/arm/mm/nommu.c

+ 2 - 2
arch/arm/mm/Makefile

@@ -3,10 +3,10 @@
 #
 #
 
 
 obj-y				:= consistent.o extable.o fault-armv.o \
 obj-y				:= consistent.o extable.o fault-armv.o \
-				   fault.o flush.o init.o iomap.o mmap.o \
+				   fault.o init.o iomap.o mmap.o \
 				   mm-armv.o
 				   mm-armv.o
 
 
-obj-$(CONFIG_MMU)		+= ioremap.o
+obj-$(CONFIG_MMU)		+= flush.o ioremap.o
 
 
 ifneq ($(CONFIG_MMU),y)
 ifneq ($(CONFIG_MMU),y)
 obj-y				+= nommu.o
 obj-y				+= nommu.o

+ 8 - 0
arch/arm/mm/nommu.c

@@ -4,10 +4,18 @@
  * ARM uCLinux supporting functions.
  * ARM uCLinux supporting functions.
  */
  */
 #include <linux/module.h>
 #include <linux/module.h>
+#include <linux/mm.h>
+#include <linux/pagemap.h>
 
 
+#include <asm/cacheflush.h>
 #include <asm/io.h>
 #include <asm/io.h>
 #include <asm/page.h>
 #include <asm/page.h>
 
 
+void flush_dcache_page(struct page *page)
+{
+	__cpuc_flush_dcache_page(page_address(page));
+}
+
 void __iomem *__ioremap_pfn(unsigned long pfn, unsigned long offset,
 void __iomem *__ioremap_pfn(unsigned long pfn, unsigned long offset,
 			    size_t size, unsigned long flags)
 			    size_t size, unsigned long flags)
 {
 {