]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit - kernel/exit.c
exit: Factor thread_group_exited out of pidfd_poll
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 1 Jul 2020 12:30:06 +0000 (07:30 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 7 Jul 2020 16:58:17 +0000 (11:58 -0500)
commit38fd525a4c61e7ecdc9ad4dcbf7b767d0a007962
tree1f255a978951c7c7464626f5de640d6ad5a420ac
parent1c340ead18ee4b4a84357abdef6d4f39ee08328b
exit: Factor thread_group_exited out of pidfd_poll

Create an independent helper thread_group_exited which returns true
when all threads have passed exit_notify in do_exit.  AKA all of the
threads are at least zombies and might be dead or completely gone.

Create this helper by taking the logic out of pidfd_poll where it is
already tested, and adding a READ_ONCE on the read of
task->exit_state.

I will be changing the user mode driver code to use this same logic
to know when a user mode driver needs to be restarted.

Place the new helper thread_group_exited in kernel/exit.c and
EXPORT it so it can be used by modules.

Link: https://lkml.kernel.org/r/20200702164140.4468-13-ebiederm@xmission.com
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Tested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
include/linux/sched/signal.h
kernel/exit.c
kernel/fork.c