Re: [PATCH v8 30/43] arm64: kasan: Allow enabling in-kernel MTE

From: Andrey Konovalov
Date: Thu Nov 05 2020 - 12:29:31 EST


On Thu, Nov 5, 2020 at 6:26 PM Catalin Marinas <catalin.marinas@xxxxxxx> wrote:
>
> On Thu, Nov 05, 2020 at 12:18:45AM +0100, Andrey Konovalov wrote:
> > diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
> > index 06ba6c923ab7..fcfbefcc3174 100644
> > --- a/arch/arm64/kernel/mte.c
> > +++ b/arch/arm64/kernel/mte.c
> > @@ -121,6 +121,13 @@ void *mte_set_mem_tag_range(void *addr, size_t size, u8 tag)
> > return ptr;
> > }
> >
> > +void __init mte_init_tags(u64 max_tag)
> > +{
> > + /* Enable MTE Sync Mode for EL1. */
> > + sysreg_clear_set(sctlr_el1, SCTLR_ELx_TCF_MASK, SCTLR_ELx_TCF_SYNC);
> > + isb();
> > +}
>
> Is this going to be called on each CPU? I quickly went through the rest
> of the patches and couldn't see how.

Yes, on each CPU. This is done via kasan_init_hw_tags() that is called
from cpu_enable_mte(). This change is added in the "kasan, arm64:
implement HW_TAGS runtime". Would it make sense to put it into a
separate patch?