diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2021-11-22 20:15:19 +0300 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2021-12-13 21:04:45 +0300 |
commit | cead18552660702a4a46f58e65188fe5f36e9dfe (patch) | |
tree | 8bfc1ce7711fc5071664c636ec93cd4143ab24bf /kernel/kthread.c | |
parent | ca3574bd653aba234a4b31955f2778947403be16 (diff) | |
download | linux-cead18552660702a4a46f58e65188fe5f36e9dfe.tar.xz |
exit: Rename complete_and_exit to kthread_complete_and_exit
Update complete_and_exit to call kthread_exit instead of do_exit.
Change the name to reflect this change in functionality. All of the
users of complete_and_exit are causing the current kthread to exit so
this change makes it clear what is happening.
Move the implementation of kthread_complete_and_exit from
kernel/exit.c to to kernel/kthread.c. As this function is kthread
specific it makes most sense to live with the kthread functions.
There are no functional change.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'kernel/kthread.c')
-rw-r--r-- | kernel/kthread.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/kthread.c b/kernel/kthread.c index 77b7c3f23f18..4388d6694a7f 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -283,6 +283,27 @@ void __noreturn kthread_exit(long result) do_exit(result); } +/** + * kthread_complete_and exit - Exit the current kthread. + * @comp: Completion to complete + * @code: The integer value to return to kthread_stop(). + * + * If present complete @comp and the reuturn code to kthread_stop(). + * + * A kernel thread whose module may be removed after the completion of + * @comp can use this function exit safely. + * + * Does not return. + */ +void __noreturn kthread_complete_and_exit(struct completion *comp, long code) +{ + if (comp) + complete(comp); + + kthread_exit(code); +} +EXPORT_SYMBOL(kthread_complete_and_exit); + static int kthread(void *_create) { static const struct sched_param param = { .sched_priority = 0 }; |