Commit 5efab4a0 authored by Joakim Tjernlund's avatar Joakim Tjernlund Committed by Benjamin Herrenschmidt

powerpc/8xx: Invalidate non present TLBs

8xx sometimes need to load a invalid/non-present TLBs in
it DTLB asm handler.

These must be invalidated separaly as linux mm don't.
Signed-off-by: default avatarJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 0285ae37
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include <asm/siginfo.h> #include <asm/siginfo.h>
#include <mm/mmu_decl.h>
#ifdef CONFIG_KPROBES #ifdef CONFIG_KPROBES
static inline int notify_page_fault(struct pt_regs *regs) static inline int notify_page_fault(struct pt_regs *regs)
...@@ -246,6 +246,12 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address, ...@@ -246,6 +246,12 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
goto bad_area; goto bad_area;
#endif /* CONFIG_6xx */ #endif /* CONFIG_6xx */
#if defined(CONFIG_8xx) #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 /* The MPC8xx seems to always set 0x80000000, which is
* "undefined". Of those that can be set, this is the only * "undefined". Of those that can be set, this is the only
* one which seems bad. * one which seems bad.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment