On Mon, Feb 11, 2019 at 06:12:53PM +0100, Oleg Nesterov wrote: > sorry, I couldn't look at this patch before. > > On 02/04, Ivan Delalande wrote: > > > > --- a/fs/exec.c > > +++ b/fs/exec.c > > @@ -1660,7 +1660,12 @@ int search_binary_handler(struct linux_binprm *bprm) > > if (retval < 0 && !bprm->mm) { > > /* we got to flush_old_exec() and failed after it */ > > read_unlock(&binfmt_lock); > > - force_sigsegv(SIGSEGV, current); > > + if (!fatal_signal_pending(current)) { > > + if (print_fatal_signals) > > + pr_info("load_binary() failed: %d\n", > > + retval); > > I won't argue, but do we really want this spam? > > > + force_sigsegv(SIGSEGV, current); > > + } > > return retval; > > } > > if (retval != -ENOEXEC || !bprm->file) { > > diff --git a/kernel/signal.c b/kernel/signal.c > > index e1d7ad8e6ab1..674076e63624 100644 > > --- a/kernel/signal.c > > +++ b/kernel/signal.c > > @@ -2552,10 +2552,10 @@ static void signal_delivered(struct ksignal *ksig, int stepping) > > > > void signal_setup_done(int failed, struct ksignal *ksig, int stepping) > > { > > - if (failed) > > - force_sigsegv(ksig->sig, current); > > - else > > + if (!failed) > > signal_delivered(ksig, stepping); > > + else if (!fatal_signal_pending(current)) > > + force_sigsegv(ksig->sig, current); > > The changelog doesn't explain this change. > > OK, I guess it comes from the previous discussion, setup_rt_frame() can equally fail > if fatal_signal_pending(). But this should be documented at least in the changelog, > and I still think we could simply change force_sigsegv() instead. > > In any case, Eric has already mentioned that we going to give SIGKILL more priority, > so I think we can drop this patch? Yes, I've been running our tests on top of Eric's tree over the week-end and haven't seen any new hit. I also see that Andrew has dropped the patch from -mm, so no futher action should be required here. Thank you for taking a look at the patch anyway. -- Ivan Delalande Arista Networks