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

From: christophe leroy
Date: Tue Nov 18 2014 - 15:07:26 EST



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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/