Commit fed307b6 authored by Jiazi Li's avatar Jiazi Li Committed by Andrew Morton
Browse files

kthread: update comment for __to_kthread

With commit 343f4c49 ("kthread: Don't allocate kthread_struct for init
and umh") and commit 753550eb ("fork: Explicitly set PF_KTHREAD"), umh
task no longer have struct kthread and PF_KTHREAD flag.

Update the comment to describe what the current rules are to detect
is something is a kthread.

Link: https://lkml.kernel.org/r/20250620100801.23185-1-jqqlijiazi@gmail.com


Signed-off-by: default avatarJiazi Li <jqqlijiazi@gmail.com>
Signed-off-by: default avatarmingzhu.wang <mingzhu.wang@transsion.com>
Suggested-by Eric W . Biederman <ebiederm@xmission.com>
Reviewed-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent caf728df
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -88,13 +88,12 @@ static inline struct kthread *to_kthread(struct task_struct *k)
/*
 * Variant of to_kthread() that doesn't assume @p is a kthread.
 *
 * Per construction; when:
 * When "(p->flags & PF_KTHREAD)" is set the task is a kthread and will
 * always remain a kthread.  For kthreads p->worker_private always
 * points to a struct kthread.  For tasks that are not kthreads
 * p->worker_private is used to point to other things.
 *
 *   (p->flags & PF_KTHREAD) && p->worker_private
 *
 * the task is both a kthread and struct kthread is persistent. However
 * PF_KTHREAD on it's own is not, kernel_thread() can exec() (See umh.c and
 * begin_new_exec()).
 * Return NULL for any task that is not a kthread.
 */
static inline struct kthread *__to_kthread(struct task_struct *p)
{