[PATCH mm v10 28/42] arm64: kasan: Allow enabling in-kernel MTE

Catalin Marinas catalin.marinas at arm.com
Sat Nov 14 07:47:56 EST 2020


On Fri, Nov 13, 2020 at 11:15:56PM +0100, Andrey Konovalov wrote:
> From: Vincenzo Frascino <vincenzo.frascino at arm.com>
> 
> Hardware tag-based KASAN relies on Memory Tagging Extension (MTE)
> feature and requires it to be enabled. MTE supports
> 
> This patch adds a new mte_enable_kernel() helper, that enables MTE in
> Synchronous mode in EL1 and is intended to be called from KASAN runtime
> during initialization.
> 
> The Tag Checking operation causes a synchronous data abort as
> a consequence of a tag check fault when MTE is configured in
> synchronous mode.
> 
> As part of this change enable match-all tag for EL1 to allow the
> kernel to access user pages without faulting. This is required because
> the kernel does not have knowledge of the tags set by the user in a
> page.
> 
> Note: For MTE, the TCF bit field in SCTLR_EL1 affects only EL1 in a
> similar way as TCF0 affects EL0.
> 
> MTE that is built on top of the Top Byte Ignore (TBI) feature hence we
> enable it as part of this patch as well.
> 
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino at arm.com>
> Co-developed-by: Andrey Konovalov <andreyknvl at google.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