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

From: christophe leroy <[email-masked]>
Date: Tue, 18 Nov 2014 21:07:15 +0100

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. Most (but not all it seems) do 
it through pte_val()
But pte_val() is defined in page.h and doesn't seem to be intended to be 
family specific. Should I change this ? if so, what is it cleanest way 
to do so ?
Should I also change __pgprot() and __pte() to do the bit 22 and PAGE_RW 
inversion stuffs ? But not all functions use those accessors.

So for the time being I don't see the best way to progress on this. Any 
suggestion ?

Christophe

---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com