mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RESEND PATCH 0/5] kthread: remove worker->task self-assignment
@ 2026-08-29 16:11 Bradley Morgan
  2026-08-29 16:13 ` [PATCH 1/5] media: ivtv: convert to kthread_run_worker Bradley Morgan
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Bradley Morgan @ 2026-08-29 16:11 UTC (permalink / raw)
  To: linux-kernel; +Cc: brads

From: Bradley Morgan <brads@mainlining.org>

Resent as a proper series with cover letter. The first send went out as
five separate threads instead of one.

kthread_worker_fn() has carried a FIXME for a decade: it assigns
worker->task = current because the old kthread_run(kthread_worker_fn)
callers never told the worker what task it was. The new
kthread_create_worker*() API sets worker->task before the worker even
starts, so the self-assignment is dead code.

Four drivers were still on the old API. Convert them, then remove the
FIXME.

No functional change intended.

Bradley Morgan (5):
  media: ivtv: convert to kthread_run_worker
  net: encx24j600: convert to kthread_run_worker
  tty: sc16is7xx: convert to kthread_run_worker
  cpufreq: schedutil: convert to kthread_create_worker
  kthread: remove worker->task self-assignment

 drivers/media/pci/ivtv/ivtv-driver.c    | 11 ++++-------
 drivers/media/pci/ivtv/ivtv-driver.h    |  3 +--
 drivers/net/ethernet/microchip/encx24j600.c | 12 ++++--------
 drivers/tty/serial/sc16is7xx.c        | 17 +++++++----------
 kernel/sched/cpufreq_schedutil.c       | 14 +++++--------
 kernel/kthread.c                      |  7 -------
 6 files changed, 21 insertions(+), 63 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH] kthread: remove worker->task self-assignment
@ 2026-08-29 16:01 Bradley Morgan
  0 siblings, 0 replies; 7+ messages in thread
From: Bradley Morgan @ 2026-08-29 16:01 UTC (permalink / raw)
  To: Frederic Weisbecker, Tejun Heo; +Cc: Peter Zijlstra, linux-kernel, brads

From: Bradley Morgan <brads@mainlining.org>

All kthread worker users now create their workers with
kthread_create_worker*(), which sets worker->task before the worker
starts. The self-assignment in kthread_worker_fn() is dead code now.

Remove it.

Signed-off-by: Bradley Morgan <brads@mainlining.org>
---
 kernel/kthread.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/kernel/kthread.c b/kernel/kthread.c
index 63beb59b7a3d..18bc702e8d2d 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -987,13 +987,6 @@ int kthread_worker_fn(void *worker_ptr)
 	struct kthread_worker *worker = worker_ptr;
 	struct kthread_work *work;
 
-	/*
-	 * FIXME: Update the check and remove the assignment when all kthread
-	 * worker users are created using kthread_create_worker*() functions.
-	 */
-	WARN_ON(worker->task && worker->task != current);
-	worker->task = current;
-
 	if (worker->flags & KTW_FREEZABLE)
 		set_freezable();
 
-- 
2.47.3


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-29 16:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-29 16:11 [RESEND PATCH 0/5] kthread: remove worker->task self-assignment Bradley Morgan
2026-08-29 16:13 ` [PATCH 1/5] media: ivtv: convert to kthread_run_worker Bradley Morgan
2026-08-29 16:15 ` [PATCH 2/5] net: encx24j600: " Bradley Morgan
2026-08-29 16:16 ` [PATCH 3/5] tty: sc16is7xx: " Bradley Morgan
2026-08-29 16:17 ` [PATCH 4/5] cpufreq: schedutil: convert to kthread_create_worker Bradley Morgan
2026-08-29 16:18 ` [PATCH] kthread: remove worker->task self-assignment Bradley Morgan
  -- strict thread matches above, loose matches on Subject: below --
2026-08-29 16:01 Bradley Morgan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®