• Steve Capper's avatar
    arm64: mm: Introduce PTE_WRITE · c2c93e5b
    Steve Capper authored
    We have the following means for encoding writable or dirty ptes:
    
                                    PTE_DIRTY       PTE_RDONLY
    !pte_dirty && !pte_write        0               1
    !pte_dirty && pte_write         0               1
    pte_dirty && !pte_write         1               1
    pte_dirty && pte_write          1               0
    
    So we can't distinguish between writable clean ptes and read only
    ptes. This can cause problems with ptes being incorrectly flagged as
    read only when they are writable but not dirty.
    
    This patch introduces a new software bit PTE_WRITE which allows us to
    correctly identify writable ptes. PTE_RDONLY is now only clear for
    valid ptes where a page is both writable and dirty.
    Signed-off-by: default avatarSteve Capper <steve.capper@arm.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    c2c93e5b
pgtable.h 13.4 KB