On Fri, Nov 13, 2020 at 11:15:56PM +0100, Andrey Konovalov wrote: > From: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> > > 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@xxxxxxx> > Co-developed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>