On Mon, Feb 08, 2021 at 04:56:16PM +0000, Vincenzo Frascino wrote: > When MTE async mode is enabled TFSR_EL1 contains the accumulative > asynchronous tag check faults for EL1 and EL0. > > During the suspend/resume operations the firmware might perform some > operations that could change the state of the register resulting in > a spurious tag check fault report. > > Save/restore the state of the TFSR_EL1 register during the > suspend/resume operations to prevent this to happen.
Do we need a similar fix for TFSRE0_EL1? We get away with this if suspend is only entered on the idle (kernel) thread but I recall we could also enter suspend on behalf of a user process (I may be wrong though). If that's the case, it would make more sense to store the TFSR* regs in the thread_struct alongside sctlr_tcf0. If we did that, we'd not need the per-cpu mte_suspend_tfsr_el1 variable. -- Catalin

