From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NZnpu-0007xy-8Y for qemu-devel@nongnu.org; Tue, 26 Jan 2010 11:00:14 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NZnpq-0007sC-9f for qemu-devel@nongnu.org; Tue, 26 Jan 2010 11:00:11 -0500 Received: from [199.232.76.173] (port=45568 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NZnpp-0007rm-QO for qemu-devel@nongnu.org; Tue, 26 Jan 2010 11:00:09 -0500 Received: from afflict.kos.to ([92.243.29.197]:36705) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NZnpo-0000VV-IT for qemu-devel@nongnu.org; Tue, 26 Jan 2010 11:00:08 -0500 From: Riku Voipio Date: Tue, 26 Jan 2010 16:00:02 +0000 Message-Id: <1264521604-2020-4-git-send-email-riku.voipio@iki.fi> In-Reply-To: <1264521604-2020-1-git-send-email-riku.voipio@iki.fi> References: <1264521604-2020-1-git-send-email-riku.voipio@iki.fi> Subject: [Qemu-devel] [PATCH 3/5] linux-user: remove signal handler before calling abort() List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Riku Voipio From: Riku Voipio Qemu may hang in host_signal_handler after qemu has done a seppuku with cpu_abort(). But at this stage we are not really interested in target process coredump anymore, so unregister host_signal_handler to die grafefully. Signed-off-by: Riku Voipio --- exec.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c index 71f655f..3145b83 100644 --- a/exec.c +++ b/exec.c @@ -40,6 +40,7 @@ #include "kvm.h" #if defined(CONFIG_USER_ONLY) #include +#include #endif //#define DEBUG_TB_INVALIDATE @@ -1692,6 +1693,14 @@ void cpu_abort(CPUState *env, const char *fmt, ...) } va_end(ap2); va_end(ap); +#if defined(CONFIG_USER_ONLY) + { + struct sigaction act; + sigfillset(&act.sa_mask); + act.sa_handler = SIG_DFL; + sigaction(SIGABRT, &act, NULL); + } +#endif abort(); } -- 1.6.5