lkml.org 
[lkml]   [2013]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 004/100] ARM: 7654/1: Preserve L_PTE_VALID in pte_modify()
    Date
    3.8-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Catalin Marinas <catalin.marinas@arm.com>

    commit 69dde4c52dbac2891b49ff9723d9c84efc5baf6f upstream.

    Following commit 26ffd0d4 (ARM: mm: introduce present, faulting entries
    for PAGE_NONE), if a page has been mapped as PROT_NONE, the L_PTE_VALID
    bit is cleared by the set_pte_ext() code. With LPAE the software and
    hardware pte share the same location and subsequent modifications of pte
    range (change_protection()) will leave the L_PTE_VALID bit cleared.

    This patch adds the L_PTE_VALID bit to the newprot mask in pte_modify().

    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Reported-by: Subash Patel <subash.rp@samsung.com>
    Tested-by: Subash Patel <subash.rp@samsung.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/arm/include/asm/pgtable.h | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/arch/arm/include/asm/pgtable.h
    +++ b/arch/arm/include/asm/pgtable.h
    @@ -240,7 +240,8 @@ static inline pte_t pte_mkspecial(pte_t

    static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
    {
    - const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER | L_PTE_NONE;
    + const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
    + L_PTE_NONE | L_PTE_VALID;
    pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
    return pte;
    }



    \
     
     \ /
      Last update: 2013-03-13 04:01    [W:4.395 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site