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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev