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 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 | 27 ++++++++++++++++++++ arch/powerpc/mm/hugetlbpage-radix.c | 17 ++++++++++++ arch/powerpc/mm/pgtable-book3s64.c | 27 ++++++++++++++++++++ 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, 193 insertions(+), 41 deletions(-) -- 2.19.2