summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2014-05-01 18:36:17 +0100
committerRiku Voipio <riku.voipio@linaro.org>2014-05-02 21:59:36 +0300
commit7af03928b1194befa1ad12e25b0e53e6770ba18c (patch)
treef75d692812a5f76197910c36547dfa83cca225c0
parent34d6086236baeb59f4b46e2380f2b271acd6f6cf (diff)
downloadfocaccia-qemu-7af03928b1194befa1ad12e25b0e53e6770ba18c.tar.gz
focaccia-qemu-7af03928b1194befa1ad12e25b0e53e6770ba18c.zip
linux-user/signal.c: Set fault address in AArch64 signal info
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>
-rw-r--r--linux-user/signal.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 7d6246f448..5b8a01f998 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -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]);