On AArch64 the si_addr field of siginfo_t is truncated to 32 bits because the fault address passes through an uint32_t variable. This is fixed by changing the variable to uint64_t.
Signed-off-by: Amanieu d'Antras <aman...@gmail.com> --- linux-user/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/main.c b/linux-user/main.c index 483eb3f..d63e093 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -1006,7 +1006,7 @@ void cpu_loop(CPUARMState *env) CPUState *cs = CPU(arm_env_get_cpu(env)); int trapnr, sig; target_siginfo_t info; - uint32_t addr; + uint64_t addr; for (;;) { cpu_exec_start(cs); -- 2.1.2