On Wed, 2009-10-07 at 22:46 +0200, Joakim Tjernlund wrote: > 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.
not sure about the dsisr test here, what is the point ? Cheers, Ben. > --- > arch/powerpc/mm/fault.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c > index 7699394..72941c7 100644 > --- a/arch/powerpc/mm/fault.c > +++ b/arch/powerpc/mm/fault.c > @@ -39,7 +39,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) > @@ -243,6 +243,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); > + > /* The MPC8xx seems to always set 0x80000000, which is > * "undefined". Of those that can be set, this is the only > * one which seems bad. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev