Oleg Nesterov
10ab825bde
change kernel threads to ignore signals instead of blocking them
...
Currently kernel threads use sigprocmask(SIG_BLOCK) to protect against
signals. This doesn't prevent the signal delivery, this only blocks
signal_wake_up(). Every "killall -33 kthreadd" means a "struct siginfo"
leak.
Change kthreadd_setup() to set all handlers to SIG_IGN instead of blocking
them (make a new helper ignore_signals() for that). If the kernel thread
needs some signal, it should use allow_signal() anyway, and in that case it
should not use CLONE_SIGHAND.
Note that we can't change daemonize() (should die!) in the same way,
because it can be used along with CLONE_SIGHAND. This means that
allow_signal() still should unblock the signal to work correctly with
daemonize()ed threads.
However, disallow_signal() doesn't block the signal any longer but ignores
it.
NOTE: with or without this patch the kernel threads are not protected from
handle_stop_signal(), this seems harmless, but not good.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-09 12:30:53 -07:00
..
2007-05-08 11:15:00 -07:00
2007-05-08 11:15:16 -07:00
2007-05-07 12:34:24 -07:00
2007-05-01 16:11:57 +02:00
2007-05-03 03:34:42 -07:00
2007-05-08 11:15:16 -07:00
2007-05-09 12:30:51 -07:00
2007-05-02 19:27:08 +02:00
2007-05-07 12:12:55 -07:00
2007-05-08 11:15:15 -07:00
2007-05-08 11:15:06 -07:00
2007-05-09 12:30:44 -07:00
2007-05-07 12:12:52 -07:00
2007-05-07 12:12:52 -07:00
2007-05-07 12:13:00 -07:00
2007-05-07 12:13:00 -07:00
2007-05-08 11:15:27 -07:00
2007-05-08 11:15:27 -07:00
2007-05-08 11:15:13 -07:00
2007-05-08 11:15:05 -07:00
2007-05-05 14:55:20 -07:00
2007-05-02 19:27:09 +02:00
2007-05-02 14:38:33 +10:00
2007-05-08 11:15:25 -07:00
2007-05-08 11:15:03 -07:00
2007-05-08 11:15:10 -07:00
2007-05-08 11:15:26 -07:00
2007-05-08 11:15:14 -07:00
2007-05-08 11:15:10 -07:00
2007-05-07 12:12:58 -07:00
2007-05-02 19:27:12 +02:00
2007-05-02 19:27:17 +02:00
2007-05-07 12:13:02 -07:00
2007-05-03 13:17:25 -07:00
2007-05-08 11:15:12 -07:00
2007-05-08 11:15:32 -07:00
2007-05-06 20:38:28 -04:00
2007-05-08 11:15:31 -07:00
2007-05-08 11:15:04 -07:00
2007-05-08 11:15:03 -07:00
2007-05-09 12:30:48 -07:00
2007-05-07 12:12:57 -07:00
2007-05-05 14:55:20 -07:00
2007-05-07 12:12:51 -07:00
2007-05-01 23:26:33 +02:00
2007-05-01 23:26:34 +02:00
2007-05-01 23:26:32 +02:00
2007-05-01 23:26:34 +02:00
2007-05-05 22:03:49 +02:00
2007-05-05 11:43:04 -07:00
2007-05-08 11:15:10 -07:00
2007-05-08 11:15:00 -07:00
2007-05-06 13:21:57 -07:00
2007-05-08 11:15:22 -07:00
2007-05-08 11:15:00 -07:00
2007-05-08 11:15:09 -07:00
2007-05-08 11:15:16 -07:00
2007-05-08 11:15:08 -07:00
2007-05-08 11:15:16 -07:00
2007-05-08 11:15:04 -07:00
2007-05-07 12:13:00 -07:00
2007-05-08 11:15:07 -07:00
2007-05-02 18:57:59 -07:00
2007-05-08 11:15:19 -07:00
2007-05-09 12:30:53 -07:00
2007-05-03 10:52:32 +03:00
2007-05-01 07:49:54 -04:00
2007-05-08 11:15:11 -07:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:49 -07:00
2007-05-07 12:12:57 -07:00
2007-05-03 10:52:22 +03:00
2007-05-07 12:12:53 -07:00
2007-05-07 12:12:54 -07:00
2007-05-07 12:12:52 -07:00
2007-05-08 11:15:00 -07:00
2007-05-02 20:58:08 +02:00
2007-05-08 11:15:08 -07:00
2007-05-08 11:15:13 -07:00
2007-05-02 19:02:38 -07:00
2007-05-09 12:30:49 -07:00
2007-05-03 15:13:45 -07:00
2007-05-03 03:36:16 -07:00
2007-05-05 11:42:03 -07:00
2007-05-08 11:15:21 -07:00
2007-05-09 12:30:51 -07:00
2007-05-08 11:15:00 -07:00
2007-05-04 17:59:07 -07:00
2007-05-07 12:12:59 -07:00
2007-05-08 11:14:57 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:05 -07:00
2007-05-05 14:15:32 -07:00
2007-05-02 18:57:59 -07:00
2007-05-04 19:36:58 -07:00
2007-05-02 19:02:38 -07:00
2007-05-02 19:27:11 +02:00
2007-05-08 11:15:14 -07:00
2007-05-08 11:15:00 -07:00
2007-05-09 12:30:48 -07:00
2007-05-08 11:54:19 +10:00
2007-05-08 11:15:23 -07:00
2007-05-08 11:14:57 -07:00
2007-05-08 11:15:01 -07:00
2007-05-07 12:12:54 -07:00
2007-05-08 11:15:15 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:00 -07:00
2007-05-09 12:30:51 -07:00
2007-05-07 00:34:20 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:53 -07:00
2007-05-07 12:12:58 -07:00
2007-05-07 12:12:50 -07:00
2007-05-09 12:30:49 -07:00
2007-05-03 03:16:20 -07:00
2007-05-07 12:12:57 -07:00
2007-05-07 12:12:54 -07:00
2007-05-09 12:30:48 -07:00
2007-05-08 11:15:11 -07:00
2007-05-08 11:14:58 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:48 -07:00
2007-05-08 11:15:33 -07:00
2007-05-09 12:30:44 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 22:41:47 +02:00
2007-05-08 11:15:18 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:04 -07:00
2007-05-03 00:55:34 -04:00
2007-05-07 12:12:58 -07:00
2007-05-08 11:15:00 -07:00
2007-05-08 11:15:04 -07:00
2007-05-08 11:15:33 -07:00
2007-05-09 12:30:53 -07:00
2007-05-04 12:55:39 -07:00