• Catalin Marinas's avatar
    mm: Preserve the PG_arch_2 flag in __split_huge_page_tail() · 72e6afa0
    Catalin Marinas authored
    When a huge page is split into normal pages, part of the head page flags
    are transferred to the tail pages. However, the PG_arch_* flags are not
    part of the preserved set.
    
    PG_arch_2 is used by the arm64 MTE support to mark pages that have valid
    tags. The absence of such flag would cause the arm64 set_pte_at() to
    clear the tags in order to avoid stale tags exposed to user or the
    swapping out hooks to ignore the tags. Not preserving PG_arch_2 on huge
    page splitting leads to tag corruption in the tail pages.
    
    Preserve the newly added PG_arch_2 flag in __split_huge_page_tail().
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    72e6afa0
huge_memory.c 81 KB