|
@@ -40,7 +40,7 @@
|
|
|
#include <asm/uaccess.h>
|
|
|
#include <asm/tlbflush.h>
|
|
|
#include <asm/siginfo.h>
|
|
|
-
|
|
|
+#include <mm/mmu_decl.h>
|
|
|
|
|
|
#ifdef CONFIG_KPROBES
|
|
|
static inline int notify_page_fault(struct pt_regs *regs)
|
|
@@ -246,6 +246,12 @@ good_area:
|
|
|
goto bad_area;
|
|
|
#endif /* CONFIG_6xx */
|
|
|
#if defined(CONFIG_8xx)
|
|
|
+ /* 8xx sometimes need to load a invalid/non-present TLBs.
|
|
|
+ * These must be invalidated separately as linux mm don't.
|
|
|
+ */
|
|
|
+ if (error_code & 0x40000000) /* no translation? */
|
|
|
+ _tlbil_va(address, 0, 0, 0);
|
|
|
+
|
|
|
/* The MPC8xx seems to always set 0x80000000, which is
|
|
|
* "undefined". Of those that can be set, this is the only
|
|
|
* one which seems bad.
|