qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Riku Voipio <riku.voipio@linaro.org>
Subject: [Qemu-devel] [PATCH 1/9] linux-user: fix segmentation fault passing with h2g(x) != x
Date: Sat,  6 Jul 2013 02:36:10 +0200	[thread overview]
Message-ID: <1373070978-11966-2-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1373070978-11966-1-git-send-email-agraf@suse.de>

When forwarding a segmentation fault into the guest process, we were passing
the host's address directly into the guest process's signal descriptor.

That obviously confused the guest process, since it didn't know what to make
of the (usually 32-bit truncated) address. Passing in h2g(address) makes the
guest process a lot happier.

This fixes java running in arm-linux-user for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 user-exec.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/user-exec.c b/user-exec.c
index 26cde7c..718c54f 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -94,6 +94,12 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
         return 1;
     }
 
+    if (GUEST_BASE) {
+        /* Convert forcefully to guest address space, invalid addresses
+           are still valid segv ones */
+        address = address - GUEST_BASE;
+    }
+
     env = current_cpu->env_ptr;
     /* see if it is an MMU fault */
     ret = cpu_handle_mmu_fault(env, address, is_write, MMU_USER_IDX);
-- 
1.6.0.2

  reply	other threads:[~2013-07-06  0:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-06  0:36 [Qemu-devel] [PATCH 0/9] linux-user: Wine enablement patch set Alexander Graf
2013-07-06  0:36 ` Alexander Graf [this message]
2013-07-06 10:27   ` [Qemu-devel] [PATCH 1/9] linux-user: fix segmentation fault passing with h2g(x) != x Peter Maydell
2013-07-06  0:36 ` [Qemu-devel] [PATCH 2/9] linux-user: Add is_write segfault check for ARM hosts Alexander Graf
2013-07-06 10:24   ` Peter Maydell
2013-07-06 10:28     ` Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 3/9] linux-user: Don't reset a new thread's CPU Alexander Graf
2013-07-06 10:31   ` Peter Maydell
2013-07-06 12:40     ` Andreas Färber
2013-07-06 12:44       ` Peter Maydell
2013-07-06 13:14         ` Andreas Färber
2013-07-06  0:36 ` [Qemu-devel] [PATCH 4/9] linux-user: Fix sendrecvmsg() with QEMU_GUEST_BASE Alexander Graf
2013-07-06 10:42   ` Peter Maydell
2013-07-06 10:47     ` Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 5/9] linux-user: Fix epoll on ARM hosts Alexander Graf
2013-07-06 10:45   ` Peter Maydell
2013-07-06 10:48     ` Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 6/9] linux-user: Add i386 TLS setter Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 7/9] linux-user: Enable NPTL for i386 Alexander Graf
2013-07-06 10:48   ` Peter Maydell
2013-07-06 10:49     ` Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 8/9] linux-user: Default to 64k guest base Alexander Graf
2013-07-06  0:36 ` [Qemu-devel] [PATCH 9/9] linux-user: Unlock mmap_lock when resuming guest from page_unprotect Alexander Graf
  -- strict thread matches above, loose matches on Subject: below --
2013-07-06 12:17 [Qemu-devel] [PATCH 0/9] Wine enablement patch set v2 Alexander Graf
2013-07-06 12:17 ` [Qemu-devel] [PATCH 1/9] linux-user: fix segmentation fault passing with h2g(x) != x Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1373070978-11966-2-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).