Messages in this thread | | | From | Ingo Molnar <> | Date | Wed, 6 May 2015 12:19:27 +0200 | Subject | Re: [PATCH] signals: Generate warning when flush_signals() is called from non-kthread context |
| |
* Oleg Nesterov <oleg@redhat.com> wrote:
> > --- a/kernel/signal.c > > +++ b/kernel/signal.c > > @@ -427,6 +427,10 @@ void flush_signals(struct task_struct *t) > > { > > unsigned long flags; > > > > + /* Only kthreads are allowed to destroy signals: */ > > + if (WARN_ON_ONCE(!(current->flags & PF_KTHREAD))) > > + return; > > + > > But I am not sure this can't make some buggy driver even more buggy. > Just suppose it does something > > do { > if (signal_pending()) > flush_signals(); > } while (wait_event_interruptible(...)); > > and this change will turn this into busy-wait loop. > > So perhaps another change which just adds WARN_ON_RATELIMIT() > without "return" will be safer?
Yeah, absolutely.
Thanks,
Ingo
| |