diff mbox series

[v3,17/21] linux-user/aarch64: Signal SEGV_MTESERR for sync tag check fault

Message ID 20210115224645.1196742-18-richard.henderson@linaro.org
State Superseded
Headers show
Series target-arm: Implement ARMv8.5-MemTag, user mode | expand

Commit Message

Richard Henderson Jan. 15, 2021, 10:46 p.m. UTC
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 linux-user/aarch64/target_signal.h | 2 ++
 linux-user/aarch64/cpu_loop.c      | 3 +++
 2 files changed, 5 insertions(+)

-- 
2.25.1

Comments

Peter Maydell Jan. 22, 2021, 12:03 p.m. UTC | #1
On Fri, 15 Jan 2021 at 22:47, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  linux-user/aarch64/target_signal.h | 2 ++

>  linux-user/aarch64/cpu_loop.c      | 3 +++

>  2 files changed, 5 insertions(+)

>

> diff --git a/linux-user/aarch64/target_signal.h b/linux-user/aarch64/target_signal.h

> index ddd73169f0..777fb667fe 100644

> --- a/linux-user/aarch64/target_signal.h

> +++ b/linux-user/aarch64/target_signal.h

> @@ -21,5 +21,7 @@ typedef struct target_sigaltstack {

>

>  #include "../generic/signal.h"

>

> +#define TARGET_SEGV_MTESERR  9  /* Synchronous ARM MTE exception */

> +

>  #define TARGET_ARCH_HAS_SETUP_FRAME

>  #endif /* AARCH64_TARGET_SIGNAL_H */

> diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c

> index 7811440c68..6867f0db2b 100644

> --- a/linux-user/aarch64/cpu_loop.c

> +++ b/linux-user/aarch64/cpu_loop.c

> @@ -133,6 +133,9 @@ void cpu_loop(CPUARMState *env)

>              case 0x0d ... 0x0f: /* Permission fault, level {1-3} */

>                  info.si_code = TARGET_SEGV_ACCERR;

>                  break;

> +            case 0x11: /* Synchronous Tag Check Fault */

> +                info.si_code = TARGET_SEGV_MTESERR;

> +                break;

>              default:

>                  g_assert_not_reached();

>              }

> --

> 2.25.1


Reviewed-by: Peter Maydell <peter.maydell@linaro.org>


thanks
-- PMM
diff mbox series

Patch

diff --git a/linux-user/aarch64/target_signal.h b/linux-user/aarch64/target_signal.h
index ddd73169f0..777fb667fe 100644
--- a/linux-user/aarch64/target_signal.h
+++ b/linux-user/aarch64/target_signal.h
@@ -21,5 +21,7 @@  typedef struct target_sigaltstack {
 
 #include "../generic/signal.h"
 
+#define TARGET_SEGV_MTESERR  9  /* Synchronous ARM MTE exception */
+
 #define TARGET_ARCH_HAS_SETUP_FRAME
 #endif /* AARCH64_TARGET_SIGNAL_H */
diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c
index 7811440c68..6867f0db2b 100644
--- a/linux-user/aarch64/cpu_loop.c
+++ b/linux-user/aarch64/cpu_loop.c
@@ -133,6 +133,9 @@  void cpu_loop(CPUARMState *env)
             case 0x0d ... 0x0f: /* Permission fault, level {1-3} */
                 info.si_code = TARGET_SEGV_ACCERR;
                 break;
+            case 0x11: /* Synchronous Tag Check Fault */
+                info.si_code = TARGET_SEGV_MTESERR;
+                break;
             default:
                 g_assert_not_reached();
             }