[PATCH v3 2/3] arm64/mm/fault: use original FAR_EL1 value when ARM64_MTE_FAR is supported

Yeoreum Yun yeoreum.yun at arm.com
Tue May 6 07:33:48 PDT 2025


Hi Peter,

> On Fri, May 2, 2025 at 10:08 AM Catalin Marinas <catalin.marinas at arm.com> wrote:
> >
> > + Peter Collingbourne as he added the SA_EXPOSE_TAGBITS flag.
> >
> > On Thu, Apr 10, 2025 at 08:47:20AM +0100, Yeoreum Yun wrote:
> > > Use the original FAR_EL1 value when an MTE tag check fault occurs,
> > > if ARM64_MTE_FAR is supported.
> > > This allows reports to include not only the logical tag (memory tag)
> > > but also the address tag information.
> > >
> > > Applications that require this information should install a signal handler with
> > > the SA_EXPOSE_TAGBITS flag.
> > > While this introduces a minor ABI change,
> > > most applications do not set this flag and therefore will not be affected.
> >
> > It is indeed a minor ABI in that a tag check fault resulting in a
> > signal will report the bits 63:60 as well, not just 59:56 of the address
> > (if the signal handler was registered with SA_EXPOSE_TAGBITS).
> >
> > I don't think user-space would notice but asking Peter.
>
> On Android we don't set bits 63:60 on heap addresses when MTE is
> enabled (and userspace programs aren't allowed to modify them in
> addresses they get back from the heap allocator either) so the fault
> handler should continue to see them as 0. Of course, a userspace
> program could be breaking the rules and setting those bits anyway, but
> in that case it looks like the only consequence would be that the
> error reports from the heap allocator would sometimes be missing some
> information (and this could already happen if the access results in a
> non-MTE fault) which I think is acceptable.
>
> Peter

Thanks for your confirmation :)

--
Sincerely,
Yeoreum Yun



More information about the linux-arm-kernel mailing list