summaryrefslogtreecommitdiff
path: root/packages/qemu/files/10_signal_jobs.patch
blob: 794a53867606021faaf46fdf0fa190abec0bee8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#DPATCHLEVEL=0
---
# linux-user/signal.c |    7 ++++++-
# 1 file changed, 6 insertions(+), 1 deletion(-)
#
Index: linux-user/signal.c
===================================================================
--- linux-user/signal.c.orig	2007-06-13 11:51:52.000000000 +0100
+++ linux-user/signal.c	2007-06-13 11:52:21.000000000 +0100
@@ -341,10 +341,15 @@ int queue_signal(int sig, target_siginfo
     k = &sigact_table[sig - 1];
     handler = k->sa._sa_handler;
     if (handler == TARGET_SIG_DFL) {
+        if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) {
+            kill(getpid(),SIGSTOP);
+            return 0;
+        } else
         /* default handler : ignore some signal. The other are fatal */
         if (sig != TARGET_SIGCHLD && 
             sig != TARGET_SIGURG && 
-            sig != TARGET_SIGWINCH) {
+            sig != TARGET_SIGWINCH &&
+            sig != TARGET_SIGCONT) {
             force_sig(sig);
         } else {
             return 0; /* indicate ignored */