aboutsummaryrefslogtreecommitdiff
path: root/arch/um/kernel/tt/tracer.c
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2005-05-05 16:15:32 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-05 16:36:36 -0700
commitcd2ee4a30cc0775d8b54e5b958613361a7cacfec (patch)
treeedea72ea7d723a1c35675632850916d77084581b /arch/um/kernel/tt/tracer.c
parentc578455a3eccf4dd7bd111e77129c301d6d67914 (diff)
[PATCH] uml: Fix SIGWINCH relaying
This makes SIGWINCH work again, and fixes a couple of SIGWINCH-associated crashes. First, the sigio thread disables SIGWINCH because all hell breaks loose if it ever gets one and tries to call the signal handling code. Second, there was a problem with deferencing tty structs after they were freed. The SIGWINCH support for a tty wasn't being turned off or freed after the tty went away. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/kernel/tt/tracer.c')
-rw-r--r--arch/um/kernel/tt/tracer.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/um/kernel/tt/tracer.c b/arch/um/kernel/tt/tracer.c
index f7b1753a025..d11e7399d7a 100644
--- a/arch/um/kernel/tt/tracer.c
+++ b/arch/um/kernel/tt/tracer.c
@@ -26,6 +26,7 @@
#include "kern_util.h"
#include "chan_user.h"
#include "ptrace_user.h"
+#include "irq_user.h"
#include "mode.h"
#include "tt.h"
@@ -33,7 +34,7 @@ static int tracer_winch[2];
int is_tracer_winch(int pid, int fd, void *data)
{
- if(pid != tracing_pid)
+ if(pid != os_getpgrp())
return(0);
register_winch_irq(tracer_winch[0], fd, -1, data);
@@ -119,6 +120,7 @@ static int signal_tramp(void *arg)
signal(SIGSEGV, (__sighandler_t) sig_handler);
set_cmdline("(idle thread)");
set_init_pid(os_getpid());
+ init_irq_signals(0);
proc = arg;
return((*proc)(NULL));
}