git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
um
/
kernel
/
signal_user.c
diff --git
a/arch/um/kernel/signal_user.c
b/arch/um/kernel/signal_user.c
index
74a69e4
..
62f4578
100644
(file)
--- a/
arch/um/kernel/signal_user.c
+++ b/
arch/um/kernel/signal_user.c
@@
-41,6
+41,7
@@
void set_handler(int sig, void (*handler)(int), int flags, ...)
while((mask = va_arg(ap, int)) != -1){
sigaddset(&action.sa_mask, mask);
}
while((mask = va_arg(ap, int)) != -1){
sigaddset(&action.sa_mask, mask);
}
+ va_end(ap);
action.sa_flags = flags;
action.sa_restorer = NULL;
if(sigaction(sig, &action, NULL) < 0)
action.sa_flags = flags;
action.sa_restorer = NULL;
if(sigaction(sig, &action, NULL) < 0)
@@
-57,6
+58,10
@@
int change_sig(int signal, int on)
return(!sigismember(&old, signal));
}
return(!sigismember(&old, signal));
}
+/* Both here and in set/get_signal we don't touch SIGPROF, because we must not
+ * disable profiling; it's safe because the profiling code does not interact
+ * with the kernel code at all.*/
+
static void change_signals(int type)
{
sigset_t mask;
static void change_signals(int type)
{
sigset_t mask;
@@
-65,7
+70,6
@@
static void change_signals(int type)
sigaddset(&mask, SIGVTALRM);
sigaddset(&mask, SIGALRM);
sigaddset(&mask, SIGIO);
sigaddset(&mask, SIGVTALRM);
sigaddset(&mask, SIGALRM);
sigaddset(&mask, SIGIO);
- sigaddset(&mask, SIGPROF);
if(sigprocmask(type, &mask, NULL) < 0)
panic("Failed to change signal mask - errno = %d", errno);
}
if(sigprocmask(type, &mask, NULL) < 0)
panic("Failed to change signal mask - errno = %d", errno);
}