On 01/04, tip-bot for Mike Galbraith wrote: > > The cgroup exit mess also uncovered a struct autogroup reference leak. > copy_process() was simply freeing vs putting the signal_struct, > stranding a reference. > > Signed-off-by: Mike Galbraith <efault@xxxxxx> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > Cc: Oleg Nesterov <oleg@xxxxxxxxxx> > LKML-Reference: <1293784350.6839.2.camel@xxxxxxxxxxxxxxxx> > Signed-off-by: Ingo Molnar <mingo@xxxxxxx> > --- > kernel/fork.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/kernel/fork.c b/kernel/fork.c > index b6f2475..0672444 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -1317,7 +1317,7 @@ bad_fork_cleanup_mm: > } > bad_fork_cleanup_signal: > if (!(clone_flags & CLONE_THREAD)) > - free_signal_struct(p->signal); > + put_signal_struct(p->signal); Well, free_signal_struct() was correct. Without CLONE_THREAD sig->sigcnt must be equal to 1. But yes, autogroup puts sched_autogroup_exit() into put_signal_struct(), so this patch looks fine. Although I must admit, to me it would be more clean to simply move sched_autogroup_exit() from put_signal_struct() into free_signal_struct() instead. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |