nommu: Fix the fault processing for the MMU-less case
authorCatalin Marinas <catalin.marinas@arm.com>
Fri, 24 Jul 2009 11:34:55 +0000 (12:34 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 24 Jul 2009 11:34:55 +0000 (12:34 +0100)
The patch adds the necessary ifdefs around functions that only make
sense when the MMU is enabled.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm/mm/fault.c

index 6fdcbb709827f695ee8a7047708ffaa89a504c0e..ee01ccae3f5828bf0b556b3f326f90211e71ff7a 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "fault.h"
 
+#ifdef CONFIG_MMU
 
 #ifdef CONFIG_KPROBES
 static inline int notify_page_fault(struct pt_regs *regs, unsigned int fsr)
@@ -97,6 +98,10 @@ void show_pte(struct mm_struct *mm, unsigned long addr)
 
        printk("\n");
 }
+#else                                  /* CONFIG_MMU */
+void show_pte(struct mm_struct *mm, unsigned long addr)
+{ }
+#endif                                 /* CONFIG_MMU */
 
 /*
  * Oops.  The kernel tried to access some page that wasn't present.
@@ -171,6 +176,7 @@ void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
                __do_kernel_fault(mm, addr, fsr, regs);
 }
 
+#ifdef CONFIG_MMU
 #define VM_FAULT_BADMAP                0x010000
 #define VM_FAULT_BADACCESS     0x020000
 
@@ -322,6 +328,13 @@ no_context:
        __do_kernel_fault(mm, addr, fsr, regs);
        return 0;
 }
+#else                                  /* CONFIG_MMU */
+static int
+do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+{
+       return 0;
+}
+#endif                                 /* CONFIG_MMU */
 
 /*
  * First Level Translation Fault Handler
@@ -340,6 +353,7 @@ no_context:
  * interrupt or a critical region, and should only copy the information
  * from the master page table, nothing more.
  */
+#ifdef CONFIG_MMU
 static int __kprobes
 do_translation_fault(unsigned long addr, unsigned int fsr,
                     struct pt_regs *regs)
@@ -378,6 +392,14 @@ bad_area:
        do_bad_area(addr, fsr, regs);
        return 0;
 }
+#else                                  /* CONFIG_MMU */
+static int
+do_translation_fault(unsigned long addr, unsigned int fsr,
+                    struct pt_regs *regs)
+{
+       return 0;
+}
+#endif                                 /* CONFIG_MMU */
 
 /*
  * Some section permission faults need to be handled gracefully.