On Sun, Jun 26, 2016 at 10:22:32PM -0700, Andy Lutomirski wrote: > kthread_stop is *sick*. > > struct kthread self; > > ... > > current->vfork_done = &self.exited; > > ... > > do_exit(ret); > > And then some other thread goes and waits for the completion, which is > *on the stack*, which, in any sane world (e.g. with my series > applied), is long gone by then.
cute > Is there seriously no way to directly wait for a struct task_struct to > exit? Could we, say, kmalloc the completion (or maybe even the whole > struct kthread) I suppose the easiest is to merge struct kthread into struct kthread_create_info, and maybe union some bits if we're really worried about size. > and (ick!) hang it off ->vfork_done? This... cleanup is going to be somewhat icky.