linux-user/aarch64: Signal SEGV_MTEAERR for async tag check error
commit5d70c3510b2cb5664430d25da5d9bcbb7443f63f
authorRichard Henderson <richard.henderson@linaro.org>
Fri, 12 Feb 2021 18:48:59 +0000 (12 10:48 -0800)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 16 Feb 2021 13:17:10 +0000 (16 13:17 +0000)
treeafcc0d115b5f44d21632a0a3c253c6c6dc858e6a
parent61dbe03787f2f8bdd61da99ea19fd80b0d5c2bfa
linux-user/aarch64: Signal SEGV_MTEAERR for async tag check error

The real kernel collects _TIF_MTE_ASYNC_FAULT into the current thread's
state on any kernel entry (interrupt, exception etc), and then delivers
the signal in advance of resuming the thread.

This means that while the signal won't be delivered immediately, it will
not be delayed forever -- at minimum it will be delivered after the next
clock interrupt.

We don't have a clock interrupt in linux-user, so we issue a cpu_kick
to signal a return to the main loop at the end of the current TB.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210212184902.1251044-29-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
linux-user/aarch64/cpu_loop.c
linux-user/aarch64/target_signal.h
target/arm/mte_helper.c