Benjamin Herrenschmidt <b...@kernel.crashing.org> wrote on 07/10/2009 23:18:05: > > 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 ?
To remove the need to do the same in generic pte code. Then we only need to do it when it counts. Lets see how it works out. > > 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