Jens Axboe <axboe@xxxxxxxxx> writes: > They don't take signals individually, and even if they share signals with > the parent task, don't allow them to be delivered through the worker > thread. This is silly I know, but why do we care? The creds should be reasonably in-sync with the rest of the threads. There are other threads that will receive the signal, especially when you worry about group_send_sig_info. Which signal sending code paths are actually a problem. > Reported-by: Stefan Metzmacher <metze@xxxxxxxxx> > Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> > --- > kernel/signal.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/kernel/signal.c b/kernel/signal.c > index ba4d1ef39a9e..730ecd3d6faf 100644 > --- a/kernel/signal.c > +++ b/kernel/signal.c > @@ -833,6 +833,9 @@ static int check_kill_permission(int sig, struct kernel_siginfo *info, > > if (!valid_signal(sig)) > return -EINVAL; > + /* PF_IO_WORKER threads don't take any signals */ > + if (t->flags & PF_IO_WORKER) > + return -EPERM; > > if (!si_fromuser(info)) > return 0;