[PATCH mm v10 26/42] arm64: mte: Reset the page tag in page->flags

Catalin Marinas catalin.marinas at arm.com
Sat Nov 14 07:43:46 EST 2020


On Fri, Nov 13, 2020 at 11:15:54PM +0100, Andrey Konovalov wrote:
> From: Vincenzo Frascino <vincenzo.frascino at arm.com>
> 
> 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: Vincenzo Frascino <vincenzo.frascino at arm.com>
> Signed-off-by: Andrey Konovalov <andreyknvl at google.com>

Reviewed-by: Catalin Marinas <catalin.marinas at arm.com>



More information about the linux-arm-kernel mailing list