• Catalin Marinas's avatar
    arm64: Ensure pmd_present() returns false after pmd_mknotpresent() · 5bb1cc0f
    Catalin Marinas authored
    Currently, pmd_present() only checks for a non-zero value, returning
    true even after pmd_mknotpresent() (which only clears the type bits).
    This patch converts pmd_present() to using pte_present(), similar to the
    other pmd_*() checks. As a side effect, it will return true for
    PROT_NONE mappings, though they are not yet used by the kernel with
    transparent huge pages.
    
    For consistency, also change pmd_mknotpresent() to only clear the
    PMD_SECT_VALID bit, even though the PMD_TABLE_BIT is already 0 for block
    mappings (no functional change). The unused PMD_SECT_PROT_NONE
    definition is removed as transparent huge pages use the pte page prot
    values.
    
    Fixes: 9c7e535f ("arm64: mm: Route pmd thp functions through pte equivalents")
    Cc: <stable@vger.kernel.org> # 3.15+
    Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    5bb1cc0f
pgtable.h 20.7 KB