Skip to content
  • Vincenzo Frascino's avatar
    arm64: mte: Reset the page tag in page->flags · 6d63b6a2
    Vincenzo Frascino authored
    
    
    The hardware tag-based KASAN for compatibility with the other modes
    stores the tag associated to a page in page->flags.
    Due to this the kernel faults on access when it allocates a page with an
    initial tag and the user changes the tags.
    
    Reset the tag associated by the kernel to a page in all the meaningful
    places to prevent kernel faults on access.
    
    Note: An alternative to this approach could be to modify page_to_virt().
    This though could end up being racy, in fact if a CPU checks the
    PG_mte_tagged bit and decides that the page is not tagged but another
    CPU maps the same with PROT_MTE and becomes tagged the subsequent kernel
    access would fail.
    
    Signed-off-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
    6d63b6a2