]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
arm64: Make !dirty ptes read-only
authorCatalin Marinas <catalin.marinas@arm.com>
Wed, 28 Nov 2012 17:06:05 +0000 (17:06 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Jan 2013 17:18:17 +0000 (09:18 -0800)
commit 33eaa58f854770dc9c98411a356c98e3a53edfda upstream.

The AArch64 Linux port relies on the mm code to wrprotect clean ptes.
This however is not the case with newly created ptes and
PAGE_SHARED(_EXEC) is writable but !dirty.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/include/asm/pgtable.h

index 14aba2db6776d099935c76e95bd4797f3a707376..64b13394950266308093f67bce6ddb7e55391428 100644 (file)
@@ -159,6 +159,8 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
 {
        if (pte_present_exec_user(pte))
                __sync_icache_dcache(pte, addr);
+       if (!pte_dirty(pte))
+               pte = pte_wrprotect(pte);
        set_pte(ptep, pte);
 }