Skip to content
  • Vincenzo Frascino's avatar
    arm64: mte: Reset the page tag in page->flags · 31f6944c
    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>
    Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
    ---
    Change-Id: I8451d438bb63364de2a3e68041e3a27866921d4e
    31f6944c