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: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
0285ae37d4
commit
5efab4a02c
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue