• S
    arm64: mm: Introduce PTE_WRITE · c2c93e5b
    Steve Capper 提交于
    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: NSteve Capper <steve.capper@arm.com>
    Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
    c2c93e5b
pgtable.h 13.4 KB