We can upgrade pte access (R -> RW transition) via mprotect. We need to make sure we follow the recommended pte update sequence as outlined in commit bd5050e38aec ("powerpc/mm/radix: Change pte relax sequence to handle nest MMU hang") for such updates. This patch series do that. Changes from V4: * Drop EXPORT_SYMBOL Changes from V3: * Build fix for x86 Changes from V2: * Update commit message for patch 4 * use radix tlb flush routines directly. Changes from V1: * Restrict ths only for R->RW upgrade. We don't need to do this for Autonuma * Restrict this only for radix translation mode. Aneesh Kumar K.V (5): mm: Update ptep_modify_prot_start/commit to take vm_area_struct as arg mm: update ptep_modify_prot_commit to take old pte value as arg arch/powerpc/mm: Nest MMU workaround for mprotect RW upgrade. mm/hugetlb: Add prot_modify_start/commit sequence for hugetlb update arch/powerpc/mm/hugetlb: NestMMU workaround for hugetlb mprotect RW upgrade arch/powerpc/include/asm/book3s/64/hugetlb.h | 12 ++++++++++ arch/powerpc/include/asm/book3s/64/pgtable.h | 18 ++++++++++++++ arch/powerpc/include/asm/book3s/64/radix.h | 4 ++++ arch/powerpc/mm/hugetlbpage-hash64.c | 25 ++++++++++++++++++++ arch/powerpc/mm/hugetlbpage-radix.c | 17 +++++++++++++ arch/powerpc/mm/pgtable-book3s64.c | 25 ++++++++++++++++++++ arch/powerpc/mm/pgtable-radix.c | 18 ++++++++++++++ arch/s390/include/asm/pgtable.h | 5 ++-- arch/s390/mm/pgtable.c | 8 ++++--- arch/x86/include/asm/paravirt.h | 13 +++++----- arch/x86/include/asm/paravirt_types.h | 5 ++-- arch/x86/xen/mmu.h | 4 ++-- arch/x86/xen/mmu_pv.c | 8 +++---- fs/proc/task_mmu.c | 8 ++++--- include/asm-generic/pgtable.h | 18 +++++++------- include/linux/hugetlb.h | 20 ++++++++++++++++ mm/hugetlb.c | 8 ++++--- mm/memory.c | 8 +++---- mm/mprotect.c | 6 ++--- 19 files changed, 189 insertions(+), 41 deletions(-) -- 2.20.1