On 22/11/16 05:33, Aneesh Kumar K.V wrote: > When we are updating pte, we just need to flush the tlb mapping for > that pte. Right now we do a full mm flush because we don't track page > size. Update the interface to track the page size and use that to > do the right tlb flush. > > Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.vnet.ibm.com> > --- > arch/powerpc/include/asm/book3s/32/pgtable.h | 4 +++- > arch/powerpc/include/asm/book3s/64/pgtable.h | 7 +++++-- > arch/powerpc/include/asm/book3s/64/radix.h | 14 +++++++------- > arch/powerpc/include/asm/nohash/32/pgtable.h | 4 +++- > arch/powerpc/include/asm/nohash/64/pgtable.h | 4 +++- > arch/powerpc/mm/pgtable-book3s64.c | 3 ++- > arch/powerpc/mm/pgtable-radix.c | 16 ++++++++++++++++ > arch/powerpc/mm/pgtable.c | 10 ++++++++-- > arch/powerpc/mm/tlb-radix.c | 15 --------------- > 9 files changed, 47 insertions(+), 30 deletions(-) > > diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h > b/arch/powerpc/include/asm/book3s/32/pgtable.h > index 6b8b2d57fdc8..0713626e9189 100644 > --- a/arch/powerpc/include/asm/book3s/32/pgtable.h > +++ b/arch/powerpc/include/asm/book3s/32/pgtable.h > @@ -224,7 +224,9 @@ static inline void huge_ptep_set_wrprotect(struct > mm_struct *mm, > > > static inline void __ptep_set_access_flags(struct mm_struct *mm, > - pte_t *ptep, pte_t entry) > + pte_t *ptep, pte_t entry, > + unsigned long address, > + unsigned long pg_sz)
I wonder if the change can be limited in scope by passing the struct vma instead of struct mm as the first argument and not passing pg_sz (I don't like that name at all, page_size if we decide to do it, please). Then extract the mm from vma->mm Balbir Singh.