Al Viro <viro@xxxxxxxxxxxxxxxxxx> writes: > On Wed, Dec 08, 2021 at 02:25:31PM -0600, Eric W. Biederman wrote: >> Today the rules are a bit iffy and arbitrary about which kernel >> threads have struct kthread present. Both idle threads and thread >> started with create_kthread want struct kthread present so that is >> effectively all kernel threads. Make the rule that if PF_KTHREAD >> and the task is running then struct kthread is present. >> >> This will allow the kernel thread code to using tsk->exit_code >> with different semantics from ordinary processes. > > Getting rid of ->exit_code abuse is independent from this. > I'm not saying that this change is a bad idea, but it's an > independent thing. Simply turn these two failure exits > into do_exit(0) in 06/10 and that's it. Then this one > would get rid of if (!self) and the second of those two > calls, but it won't be nailed to that point of queue. That is a good point. As this code has been in linux-next for a while, I am going to leave the dependency in place in the interests of sending Linus tested code. This change with the bit about which field points to struct kthread seems like a good idea on it's own merits. Eric