Merge branch 'devel-stable' into devel
[linux-block.git] / arch / arm / mm / fault.c
index 5fa8dea5a3716173dc92c09b2f5a8540b7a9868a..cc8829d7e1161822d5a2694d1a008a4ca312a9d8 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/kprobes.h>
 #include <linux/uaccess.h>
 #include <linux/page-flags.h>
+#include <linux/sched.h>
 #include <linux/highmem.h>
 
 #include <asm/system.h>
@@ -24,6 +25,7 @@
 
 #include "fault.h"
 
+#ifdef CONFIG_MMU
 
 #ifdef CONFIG_KPROBES
 static inline int notify_page_fault(struct pt_regs *regs, unsigned int fsr)
@@ -98,6 +100,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.
@@ -172,6 +178,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
 
@@ -323,6 +330,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
@@ -341,6 +355,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)
@@ -379,6 +394,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.