Subject: Re: [v4,17/21] powerpc/8xx: set PTE bit 22 off TLBmiss

From: Scott Wood <[email-masked]>
Date: Tue, 25 Nov 2014 19:58:21 -0600

On Tue, 2014-11-18 at 21:07 +0100, christophe leroy wrote:
> Le 08/11/2014 01:08, Scott Wood a écrit :
> >
> > OK, so the _PAGE_KERNEL_RO(X) stuff is because initially setting the PTE
> > doesn't go through pte_update().
> >
> > I'll apply this, though it'd be cleaner to just have 8xx versions of the
> > relevant PTE accessor functions to maintain the PTE the way the hardware
> > wants (this would also eliminate the _PAGE_RW inversion that's still in
> > the TLB miss handler).
> >
> >
> 
> Yes, I've been looking at a simple way to also eliminate the _PAGE_RW 
> inversion, but i've not been able to find an easy solution up to now.
> 
> It seems that we have two functions that set PTE: set_pte_at() and 
> pte_update()
> I could perform the bit 22 (0x200) stuff and the _PAGE_RW invertion in 
> both functions, but then there are functions that read the PTE to make 
> decision based on PAGE_RW for instance.

Where?  The only relevant use of _PAGE_RW outside accessors that I see
is in gup_pte_range(), which shouldn't be too hard to fix up.

-Scott