linux-user/signal.c: Set fault address in AArch64 signal info
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 1 May 2014 17:36:17 +0000 (18:36 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Fri, 2 May 2014 18:59:36 +0000 (21:59 +0300)
Set the fault address correctly in the signal information passed
to a signal handler for AArch64 guests.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/signal.c

index 7d6246f..5b8a01f 100644 (file)
@@ -1242,8 +1242,7 @@ static int target_setup_sigframe(struct target_rt_sigframe *sf,
     __put_user(env->pc, &sf->uc.tuc_mcontext.pc);
     __put_user(pstate_read(env), &sf->uc.tuc_mcontext.pstate);
 
-    __put_user(/*current->thread.fault_address*/ 0,
-            &sf->uc.tuc_mcontext.fault_address);
+    __put_user(env->exception.vaddress, &sf->uc.tuc_mcontext.fault_address);
 
     for (i = 0; i < TARGET_NSIG_WORDS; i++) {
         __put_user(set->sig[i], &sf->uc.tuc_sigmask.sig[i]);