From nobody Sat Sep 26 05:27:39 2026 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66B2B442393; Fri, 4 Sep 2026 09:38:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514699; cv=none; b=NSzZ0HP7v9YvqHMGLESjfmFO3+4zEr6mo6MT84iOg6y0K8qGGU81rkkxuBQ942EB35t+j1r1vPRvu+WyxrBFjYBJxVeRrPzbqCHcv7HqH1a03TmpDzCUu9U95tEU64SbmuLDB8LaxA+T9RGRj5bzyaUmLbMlD0nPljEvUKrUcBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514699; c=relaxed/simple; bh=M/rqZnW0Aj+mun6UPSvz5lbv6fydtqZDPNVJKad1C3M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hbRGd4cKKXg6P8yGFBbirAI5oCz31nbQbe6k84O6b2VltfH63fRL2mILteItHgV/7GYkBl9Ft/lzQvCUvUitkce3fBnVMRAZFTDGSk2O4e1C1zMod5eEyFSZRS30Cq2R77DYpcms603ycgm2PJM0JWUZxNreSm+hsS/MTvX47M4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=RU84nqOB; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=yLvnaCvx; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="RU84nqOB"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="yLvnaCvx" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514676; bh=pq5PPVVOvt/eLwlTPFKwC3x UFnDaXiY3OXuMlaGkD7E=; b=RU84nqOBZoFI2AjC4PSH3QxYRSw9SFEgUCo6mSrvM/dRxjs/e7 tNUKkq8R/lOaOHNgYrM9azVQaMIT5bYvVZqFE8J85FmxtwuJSRX3cL7t8mR8NvRgXH2S+gzaRAw xad+vmPitTMgbVc2hpfoYCG3Zur8AsLYDuK3D9y9OChvYqewzqXjVoqfWzsUKHJJ+5ytkTSw0qf 4KOYDj5LdHW9/nyyiCCMn8XL6hfg/QxN/Kt2kK4H6mosgTwJaUZFJufZ2AB9gTwqfXieGO2plqY gxmpObXyRUAY0EchVtYLwzqVBdsGt6NZGytbFaztrbAs5rb48WAGk4yo7K0kbc1aB5Q==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514676; bh=pq5PPVVOvt/eLwlTPFKwC3x UFnDaXiY3OXuMlaGkD7E=; b=yLvnaCvxb8bC4Gbmiw6kjm8ARQjoVGKbupaWOFy6jZyHJu6QjQ pyBnOlgDWPyhp6dFM454qXUp9hFNscb7ihDw==; From: Bradley Morgan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , Frederic Weisbecker , Peter Zijlstra , Waiman Long , Christian Brauner , Kees Cook , Andy Walls , Mauro Carvalho Chehab , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Greg Kroah-Hartman , Jiri Slaby , "Rafael J . Wysocki" , Viresh Kumar , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Bradley Morgan , linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-serial@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 1/5] media: ivtv: convert to kthread_run_worker Date: Fri, 4 Sep 2026 09:37:53 +0000 Message-ID: X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert ivtv to use kthread_run_worker() instead of the deprecated kthread_run(kthread_worker_fn) pattern. The new API sets worker->task before the worker starts. Signed-off-by: Bradley Morgan --- drivers/media/pci/ivtv/ivtv-driver.c | 14 ++++++-------- drivers/media/pci/ivtv/ivtv-driver.h | 3 +-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/= ivtv-driver.c index b9ea56ec9593..6f0e0e46deb5 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.c +++ b/drivers/media/pci/ivtv/ivtv-driver.c @@ -703,15 +703,13 @@ static int ivtv_init_struct1(struct ivtv *itv) spin_lock_init(&itv->lock); spin_lock_init(&itv->dma_reg_lock); =20 - kthread_init_worker(&itv->irq_worker); - itv->irq_worker_task =3D kthread_run(kthread_worker_fn, &itv->irq_worker, - "%s", itv->v4l2_dev.name); - if (IS_ERR(itv->irq_worker_task)) { + itv->irq_worker =3D kthread_run_worker(0, "%s", itv->v4l2_dev.name); + if (IS_ERR(itv->irq_worker)) { IVTV_ERR("Could not create ivtv task\n"); return -1; } /* must use the FIFO scheduler as it is realtime sensitive */ - sched_set_fifo(itv->irq_worker_task); + sched_set_fifo(itv->irq_worker->task); =20 kthread_init_work(&itv->irq_work, ivtv_irq_work_handler); =20 @@ -1232,7 +1230,7 @@ static int ivtv_probe(struct pci_dev *pdev, const str= uct pci_device_id *pci_id) v4l2_ctrl_handler_free(&itv->cxhdl.hdl); exit_ivtv_i2c(itv); free_worker: - kthread_stop(itv->irq_worker_task); + kthread_destroy_worker(itv->irq_worker); err: if (retval =3D=3D 0) retval =3D -ENODEV; @@ -1372,8 +1370,8 @@ static void ivtv_remove(struct pci_dev *pdev) timer_shutdown_sync(&itv->dma_timer); =20 /* Kill irq worker */ - kthread_flush_worker(&itv->irq_worker); - kthread_stop(itv->irq_worker_task); + kthread_flush_worker(itv->irq_worker); + kthread_destroy_worker(itv->irq_worker); =20 ivtv_streams_cleanup(itv); ivtv_udma_free(itv); diff --git a/drivers/media/pci/ivtv/ivtv-driver.h b/drivers/media/pci/ivtv/= ivtv-driver.h index 000e8beecc7c..091bc44f13bc 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.h +++ b/drivers/media/pci/ivtv/ivtv-driver.h @@ -668,8 +668,7 @@ struct ivtv { /* Interrupts & DMA */ u32 irqmask; /* active interrupts */ u32 irq_rr_idx; /* round-robin stream index */ - struct kthread_worker irq_worker; /* kthread worker for PIO/YUV/VBI acti= ons */ - struct task_struct *irq_worker_task; /* task for irq_worker */ + struct kthread_worker *irq_worker; /* kthread worker for PIO/YUV/VBI act= ions */ struct kthread_work irq_work; /* kthread work entry */ spinlock_t dma_reg_lock; /* lock access to DMA engine registers */ int cur_dma_stream; /* index of current stream doing DMA (-1 if none) */ --=20 2.47.3 From nobody Sat Sep 26 05:27:39 2026 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2958944C66B; Fri, 4 Sep 2026 09:40:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514825; cv=none; b=IsfM8CQBaUA+oNVIL9ZUN7ADagGNNjQrK632xPXmdv8U0vCn9dU6G96mVG28u35QBW/9d8CoHfQqq9mNZqmTwTDHbW7cqHkxY7CvnOBCfWM+vcHqnTVbzMwjTKj1SUmzI+3isygm17pBvPJu32fN9Vj0jksRhYCNRwRGcOMajd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514825; c=relaxed/simple; bh=F77njVnBvpwZk6BnrQfZT9AMKFdPuuVMV2iyZCHGOCw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jQWWDhieeV4buM0TDojr7jSXZCL3FaFj+9pZarqlZZGAdXDD8GxKN17v8IJeGexJpGaiDe8lDuo7k0nAr5QpIXWNIKZktJZwAMZmKheGdBBY+jrGt0b7HIkoUkUnFULpIBNQ8BZQFqwI649tXIgZoCwxBU+V+aiQ82+PhEBKgBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=i/cUg8QR; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=uJEzQI0m; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="i/cUg8QR"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="uJEzQI0m" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514806; bh=qx0JP8pv2SK72dhqWLFGYNf k+VCMUCgvowqOr6GdkxM=; b=i/cUg8QRZeFqIDqcaO3md4HeGZHTT5tuTqUS55xDbTN7x5FGtf dboejUh+sKai0kgBFuQPraOMmYvz3aCD3C6uXfvU59XchSKhGegVsRvMcYoqH0/yLyZrtU61oYz z0Rr5MWtJk1wKzWPD4/EJjZ2r0IaZM4GU98YSu5jZfqI8axRZxDF6E6eXf9gqEwswLMclfJ7XYz YQAYRzACxKNtwBnsj4Twf/W1YtnalcwIJzYd4yaK6H9Xx1hAyVZiK3Ri/5vNH5KN2sKiM8E6I5O 7n2BI53rNOTo2oZdQK9iEcScBkCS6ls1G1xxOs0fOozZBOPehupEFJtpN8kLXvtfauA==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514806; bh=qx0JP8pv2SK72dhqWLFGYNf k+VCMUCgvowqOr6GdkxM=; b=uJEzQI0mwNO11hVz05y+5ej8b5wrVzhjXfrjGYXpubtcYwHP3g GNvVGQQrRDwTXGSo7BEhgOoZZAacGtGo51CA==; From: Bradley Morgan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , Frederic Weisbecker , Peter Zijlstra , Waiman Long , Christian Brauner , Kees Cook , Andy Walls , Mauro Carvalho Chehab , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Greg Kroah-Hartman , Jiri Slaby , "Rafael J . Wysocki" , Viresh Kumar , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Bradley Morgan , linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-serial@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 2/5] net: encx24j600: convert to kthread_run_worker Date: Fri, 4 Sep 2026 09:40:06 +0000 Message-ID: X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert encx24j600 to use kthread_run_worker() instead of the deprecated kthread_run(kthread_worker_fn) pattern. The new API sets worker->task before the worker starts. Signed-off-by: Bradley Morgan --- drivers/net/ethernet/microchip/encx24j600.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethe= rnet/microchip/encx24j600.c index b011bf5c2305..460189064332 100644 --- a/drivers/net/ethernet/microchip/encx24j600.c +++ b/drivers/net/ethernet/microchip/encx24j600.c @@ -49,8 +49,7 @@ struct encx24j600_priv { struct mutex lock; /* device access lock */ struct encx24j600_context ctx; struct sk_buff *tx_skb; - struct task_struct *kworker_task; - struct kthread_worker kworker; + struct kthread_worker *kworker; struct kthread_work tx_work; struct kthread_work setrx_work; u16 next_packet; @@ -823,7 +822,7 @@ static void encx24j600_set_multicast_list(struct net_de= vice *dev) } =20 if (oldfilter !=3D priv->rxfilter) - kthread_queue_work(&priv->kworker, &priv->setrx_work); + kthread_queue_work(priv->kworker, &priv->setrx_work); } =20 static void encx24j600_hw_tx(struct encx24j600_priv *priv) @@ -884,7 +883,7 @@ static netdev_tx_t encx24j600_tx(struct sk_buff *skb, s= truct net_device *dev) /* Remember the skb for deferred processing */ priv->tx_skb =3D skb; =20 - kthread_queue_work(&priv->kworker, &priv->tx_work); + kthread_queue_work(priv->kworker, &priv->tx_work); =20 return NETDEV_TX_OK; } @@ -1046,15 +1045,12 @@ static int encx24j600_spi_probe(struct spi_device *= spi) /* Initialize the device HW to the consistent state */ encx24j600_hw_init(priv); =20 - kthread_init_worker(&priv->kworker); kthread_init_work(&priv->tx_work, encx24j600_tx_proc); kthread_init_work(&priv->setrx_work, encx24j600_setrx_proc); =20 - priv->kworker_task =3D kthread_run(kthread_worker_fn, &priv->kworker, - "encx24j600"); - - if (IS_ERR(priv->kworker_task)) { - ret =3D PTR_ERR(priv->kworker_task); + priv->kworker =3D kthread_run_worker(0, "encx24j600"); + if (IS_ERR(priv->kworker)) { + ret =3D PTR_ERR(priv->kworker); goto out_free; } =20 @@ -1087,7 +1083,7 @@ static int encx24j600_spi_probe(struct spi_device *sp= i) out_unregister: unregister_netdev(priv->ndev); out_stop: - kthread_stop(priv->kworker_task); + kthread_destroy_worker(priv->kworker); out_free: free_netdev(ndev); =20 @@ -1100,7 +1096,7 @@ static void encx24j600_spi_remove(struct spi_device *= spi) struct encx24j600_priv *priv =3D dev_get_drvdata(&spi->dev); =20 unregister_netdev(priv->ndev); - kthread_stop(priv->kworker_task); + kthread_destroy_worker(priv->kworker); =20 free_netdev(priv->ndev); } --=20 2.47.3 From nobody Sat Sep 26 05:27:39 2026 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE9F944A40A; Fri, 4 Sep 2026 09:40:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514821; cv=none; b=oMZRceqdfPnMo3kZhjnIjXlg+7t5rcvbXukW0AcqWaFN4vtQyZ7kyiT2ynC0/m0fZrNxIJywoknKPI0QfWyst8E9S5B+NhqvUssB5Zbr+1acM3hvIKnTVTSWATZssL6sGv5uszktsIEe6ykuXThVnrvbvPu19usbVcl61wO4vGA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514821; c=relaxed/simple; bh=nbtqm/YPqdEnJ8NqhdZsKkLJv2SJh6lcYS14cK3SV4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Zt4vBkRIcCuGkBtPL9kaBn/OeXN6X/uhzAwx6tAuBZGF6bChxENyyJDQ14WxQEtoJBZR4vQcbGTjaqy/brZlDaIUNIVxy+ysrci35aKW7ZlrQQ0W9US4sKazJKJaLwGmt+5956tnsStnTzgqxgQf79cPeDBYVKyBdHNSnB/uSMA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=Oy24B/AV; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=MQitw/5v; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="Oy24B/AV"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="MQitw/5v" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514806; bh=h+3AZpZDFtc19Zg22GDzjP9 LtBfRZ6evo5THYpSOsUE=; b=Oy24B/AV9iTKd+4Q9ccQOAiT011Gpvbk3JYBxVdlS8svLPVIwn xOvqX9Z0vH/yyhZFkn5NFAC9o1WHQXO8zc5k6kVHiWlHpd9821UdC/4NCN1/OAUF8xVACdjt0VE tNJig9WZrnu2O8iwq6hjyWpQYbejcbA4zcnxlsSi+sHC036huha9zJgpy+0kxex+qKyaisBuAo6 GrRpHRWBKmIVuS2dfvA7g9DdiOSxfYCrUGS7evmPDEIihJcoF1JqAfKDEL/t1MdFedpja8POvPj HbxuEVHV8QWYSB+3A2llui3gHr6/WIqMWa6xWmTrCWfwrHcXd3hYIt3+e9/BWKoVJLw==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514806; bh=h+3AZpZDFtc19Zg22GDzjP9 LtBfRZ6evo5THYpSOsUE=; b=MQitw/5vuCsulpd6WfooZmXGu6KoNfD5wMt7COdlbhLvx+pwDl Lt4yJwKkNukV1/KAddLCFiOLyS7kmmo1TMDg==; From: Bradley Morgan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , Frederic Weisbecker , Peter Zijlstra , Waiman Long , Christian Brauner , Kees Cook , Andy Walls , Mauro Carvalho Chehab , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Greg Kroah-Hartman , Jiri Slaby , "Rafael J . Wysocki" , Viresh Kumar , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Bradley Morgan , linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-serial@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 3/5] tty: sc16is7xx: convert to kthread_run_worker Date: Fri, 4 Sep 2026 09:40:07 +0000 Message-ID: <946a190a64560bbb192d03f5757b8349b97157f9.1788513591.git.brads@mainlining.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert sc16is7xx to use kthread_run_worker() instead of the deprecated kthread_run(kthread_worker_fn) pattern. The new API sets worker->task before the worker starts. Signed-off-by: Bradley Morgan --- drivers/tty/serial/sc16is7xx.c | 39 ++++++++++++++++------------------ 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 7107a0fb1e7b..2cfc1f290009 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -306,8 +306,7 @@ struct sc16is7xx_port { unsigned long gpio_valid_mask; #endif u8 mctrl_mask; - struct kthread_worker kworker; - struct task_struct *kworker_task; + struct kthread_worker *kworker; struct kthread_delayed_work poll_work; bool polling; struct sc16is7xx_one p[]; @@ -434,7 +433,7 @@ static void sc16is7xx_ier_clear(struct uart_port *port,= u8 bit) one->config.flags |=3D SC16IS7XX_RECONF_IER; one->config.ier_mask |=3D bit; one->config.ier_val &=3D ~bit; - kthread_queue_work(&s->kworker, &one->reg_work); + kthread_queue_work(s->kworker, &one->reg_work); } =20 static void sc16is7xx_ier_set(struct uart_port *port, u8 bit) @@ -447,7 +446,7 @@ static void sc16is7xx_ier_set(struct uart_port *port, u= 8 bit) one->config.flags |=3D SC16IS7XX_RECONF_IER; one->config.ier_mask |=3D bit; one->config.ier_val |=3D bit; - kthread_queue_work(&s->kworker, &one->reg_work); + kthread_queue_work(s->kworker, &one->reg_work); } =20 static void sc16is7xx_stop_tx(struct uart_port *port) @@ -813,7 +812,7 @@ static void sc16is7xx_poll_proc(struct kthread_work *ws) sc16is7xx_irq(0, s); =20 /* Setup delay based on SC16IS7XX_POLL_PERIOD_MS */ - kthread_queue_delayed_work(&s->kworker, &s->poll_work, + kthread_queue_delayed_work(s->kworker, &s->poll_work, msecs_to_jiffies(SC16IS7XX_POLL_PERIOD_MS)); } =20 @@ -900,7 +899,7 @@ static void sc16is7xx_ms_proc(struct kthread_work *ws) scoped_guard(mutex, &one->lock) sc16is7xx_update_mlines(one); =20 - kthread_queue_delayed_work(&s->kworker, &one->ms_work, HZ); + kthread_queue_delayed_work(s->kworker, &one->ms_work, HZ); } } =20 @@ -911,7 +910,7 @@ static void sc16is7xx_enable_ms(struct uart_port *port) =20 lockdep_assert_held_once(&port->lock); =20 - kthread_queue_delayed_work(&s->kworker, &one->ms_work, 0); + kthread_queue_delayed_work(s->kworker, &one->ms_work, 0); } =20 static void sc16is7xx_start_tx(struct uart_port *port) @@ -919,7 +918,7 @@ static void sc16is7xx_start_tx(struct uart_port *port) struct sc16is7xx_port *s =3D dev_get_drvdata(port->dev); struct sc16is7xx_one *one =3D to_sc16is7xx_one(port); =20 - kthread_queue_work(&s->kworker, &one->tx_work); + kthread_queue_work(s->kworker, &one->tx_work); } =20 static void sc16is7xx_throttle(struct uart_port *port) @@ -968,7 +967,7 @@ static void sc16is7xx_set_mctrl(struct uart_port *port,= unsigned int mctrl) struct sc16is7xx_one *one =3D to_sc16is7xx_one(port); =20 one->config.flags |=3D SC16IS7XX_RECONF_MD; - kthread_queue_work(&s->kworker, &one->reg_work); + kthread_queue_work(s->kworker, &one->reg_work); } =20 static void sc16is7xx_break_ctl(struct uart_port *port, int break_state) @@ -1098,7 +1097,7 @@ static int sc16is7xx_config_rs485(struct uart_port *p= ort, struct ktermios *termi } =20 one->config.flags |=3D SC16IS7XX_RECONF_RS485; - kthread_queue_work(&s->kworker, &one->reg_work); + kthread_queue_work(s->kworker, &one->reg_work); =20 return 0; } @@ -1159,7 +1158,7 @@ static int sc16is7xx_startup(struct uart_port *port) uart_port_unlock_irqrestore(port, flags); =20 if (s->polling) - kthread_queue_delayed_work(&s->kworker, &s->poll_work, + kthread_queue_delayed_work(s->kworker, &s->poll_work, msecs_to_jiffies(SC16IS7XX_POLL_PERIOD_MS)); =20 return 0; @@ -1186,7 +1185,7 @@ static void sc16is7xx_shutdown(struct uart_port *port) if (s->polling) kthread_cancel_delayed_work_sync(&s->poll_work); =20 - kthread_flush_worker(&s->kworker); + kthread_flush_worker(s->kworker); } =20 static const char *sc16is7xx_type(struct uart_port *port) @@ -1595,14 +1594,12 @@ int sc16is7xx_probe(struct device *dev, const struc= t sc16is7xx_devtype *devtype, s->devtype =3D devtype; dev_set_drvdata(dev, s); =20 - kthread_init_worker(&s->kworker); - s->kworker_task =3D kthread_run(kthread_worker_fn, &s->kworker, - "sc16is7xx"); - if (IS_ERR(s->kworker_task)) { - ret =3D PTR_ERR(s->kworker_task); + s->kworker =3D kthread_run_worker(0, "sc16is7xx"); + if (IS_ERR(s->kworker)) { + ret =3D PTR_ERR(s->kworker); goto out_clk; } - sched_set_fifo(s->kworker_task); + sched_set_fifo(s->kworker->task); =20 ret =3D sc16is7xx_reset(dev, regmaps[0]); if (ret) @@ -1676,7 +1673,7 @@ int sc16is7xx_probe(struct device *dev, const struct = sc16is7xx_devtype *devtype, } =20 out_kthread: - kthread_stop(s->kworker_task); + kthread_destroy_worker(s->kworker); =20 out_clk: clk_disable_unprepare(s->clk); @@ -1705,8 +1702,8 @@ void sc16is7xx_remove(struct device *dev) if (s->polling) kthread_cancel_delayed_work_sync(&s->poll_work); =20 - kthread_flush_worker(&s->kworker); - kthread_stop(s->kworker_task); + kthread_flush_worker(s->kworker); + kthread_destroy_worker(s->kworker); =20 clk_disable_unprepare(s->clk); } --=20 2.47.3 From nobody Sat Sep 26 05:27:39 2026 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69004448382; Fri, 4 Sep 2026 09:40:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514817; cv=none; b=DGchiEWGobiIy5k2g3GzCtDGy9EhMH6L7iBGh7wl5QyMo8kb0No8Z4CR4xRP0IdOf1BWQKBNqUsLEP6w75taMXuctUXDBURGfO6u5FWGWhA4TJX6TWKizMQ7G/W831ESiLy3DN4NJNk6rt3sY1uQuywNr+vTeWgi3IwUYM/PGd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514817; c=relaxed/simple; bh=KmuLnXF/U44uMa55GVUVP5W7FcFy4MysXP6KDZ38D2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZWGXdGmQTzVsqWMeNhIcVNwvII6g7bG3cOaf9FoK4qTfJXhrwY4bprs9RIlTNGLzRCzrID6Fvr3ZxNHIPpGl437QSif6joqCHm6TbNFK9MLvWnadZeiUZHDxIeU9AWK51UwUUQg4F85KxtB+ikG15Go52aDWeiinZHXHQ1y5wSw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=gTLB1Qep; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=julQ9gfr; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="gTLB1Qep"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="julQ9gfr" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514807; bh=3tkVlnpw7+NBfWJJgluik5B VtbGX5D0ZhS2q1Ia+1+o=; b=gTLB1QepB9c7bOkEJkkgFHDKZRT/2/Bcvt2hMdrRQMQ4tf3JGZ bjsrGFNg1hp2aGhYzcc4Au5RnvvI8aqn86TykhdKWs+T3UFLjp4F/LCkMkD87iwQhQNRGDZqhh/ E80yyBTwOEKXbSz5nZsNIWixKGXufVva2JTwf8SZbrkipQ1ZMzD5IzuV4NYxFPZ1PQhW7EmGIOT IpLbgcHbCNGDhBE14XlNVa1/bYqHpm20Xjp0Tn1LL8vd9Go1ElXvS0iOtH/IgE6EqKoQK8W8hb3 eByPuUK/SUvgmdOg+fzsiwMjYylNihn6KWsLoRA8z5FHMe2jKEwiY+YQIVE0NfL9BIw==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514807; bh=3tkVlnpw7+NBfWJJgluik5B VtbGX5D0ZhS2q1Ia+1+o=; b=julQ9gfr+eDtvvHGTorvWHSkvLaFHwz+o0Hbx2sx9DiGx6+PFc fHnVpA+pR5ZeZsMDdpA0TS8S5ShV4s5+yrCw==; From: Bradley Morgan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , Frederic Weisbecker , Peter Zijlstra , Waiman Long , Christian Brauner , Kees Cook , Andy Walls , Mauro Carvalho Chehab , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Greg Kroah-Hartman , Jiri Slaby , "Rafael J . Wysocki" , Viresh Kumar , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Bradley Morgan , linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-serial@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 4/5] cpufreq: schedutil: convert to kthread_create_worker Date: Fri, 4 Sep 2026 09:40:07 +0000 Message-ID: X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert cpufreq_schedutil to use kthread_create_worker() instead of the deprecated kthread_run(kthread_worker_fn) pattern. The new API sets worker->task before the worker starts. Signed-off-by: Bradley Morgan --- kernel/sched/cpufreq_schedutil.c | 33 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedu= til.c index 49ccd6f1c185..5023c24d8a21 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -31,8 +31,7 @@ struct sugov_policy { struct irq_work irq_work; struct kthread_work work; struct mutex work_lock; - struct kthread_worker worker; - struct task_struct *thread; + struct kthread_worker *worker; bool work_in_progress; =20 bool limits_changed; @@ -586,7 +585,7 @@ static void sugov_irq_work(struct irq_work *irq_work) =20 sg_policy =3D container_of(irq_work, struct sugov_policy, irq_work); =20 - kthread_queue_work(&sg_policy->worker, &sg_policy->work); + kthread_queue_work(sg_policy->worker, &sg_policy->work); } =20 /************************** sysfs interface ************************/ @@ -669,7 +668,6 @@ static void sugov_policy_free(struct sugov_policy *sg_p= olicy) =20 static int sugov_kthread_create(struct sugov_policy *sg_policy) { - struct task_struct *thread; struct sched_attr attr =3D { .size =3D sizeof(struct sched_attr), .sched_policy =3D SCHED_DEADLINE, @@ -692,32 +690,29 @@ static int sugov_kthread_create(struct sugov_policy *= sg_policy) return 0; =20 kthread_init_work(&sg_policy->work, sugov_work); - kthread_init_worker(&sg_policy->worker); - thread =3D kthread_create(kthread_worker_fn, &sg_policy->worker, - "sugov:%d", - cpumask_first(policy->related_cpus)); - if (IS_ERR(thread)) { - pr_err("failed to create sugov thread: %pe\n", thread); - return PTR_ERR(thread); + sg_policy->worker =3D kthread_create_worker(0, "sugov:%d", + cpumask_first(policy->related_cpus)); + if (IS_ERR(sg_policy->worker)) { + pr_err("failed to create sugov thread: %pe\n", sg_policy->worker); + return PTR_ERR(sg_policy->worker); } =20 - ret =3D sched_setattr_nocheck(thread, &attr); + ret =3D sched_setattr_nocheck(sg_policy->worker->task, &attr); if (ret) { - kthread_stop(thread); + kthread_destroy_worker(sg_policy->worker); pr_warn("%s: failed to set SCHED_DEADLINE\n", __func__); return ret; } =20 - sg_policy->thread =3D thread; if (policy->dvfs_possible_from_any_cpu) - set_cpus_allowed_ptr(thread, policy->related_cpus); + set_cpus_allowed_ptr(sg_policy->worker->task, policy->related_cpus); else - kthread_bind_mask(thread, policy->related_cpus); + kthread_bind_mask(sg_policy->worker->task, policy->related_cpus); =20 init_irq_work(&sg_policy->irq_work, sugov_irq_work); mutex_init(&sg_policy->work_lock); =20 - wake_up_process(thread); + wake_up_process(sg_policy->worker->task); =20 return 0; } @@ -728,8 +723,8 @@ static void sugov_kthread_stop(struct sugov_policy *sg_= policy) if (sg_policy->policy->fast_switch_enabled) return; =20 - kthread_flush_worker(&sg_policy->worker); - kthread_stop(sg_policy->thread); + kthread_flush_worker(sg_policy->worker); + kthread_destroy_worker(sg_policy->worker); mutex_destroy(&sg_policy->work_lock); } =20 --=20 2.47.3 From nobody Sat Sep 26 05:27:39 2026 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C78DC4503E0; Fri, 4 Sep 2026 09:40:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514831; cv=none; b=oqT7jA7GrdsFZYR9ITCLjhaJXScit1gbYZqGCDg+qUB4wUe239ZHTrN5Rpd2FeSDtkvQ1Io0IMrsUxbi/xBcyfGAGZsSP3jGkG3qrFRibSAZiIN2gT+4hkrA3spFvy9oK6BdauhDTeGWgSzFMtObRZ+t5fSQiwEV+R0YDPOpTh4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788514831; c=relaxed/simple; bh=u6ku6jmRU/n0Rn1nBuL9IyYY8MhYBi0W4eF2S7GbeAw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=flYOaweWNLuRDiKLDlHakG83NPKZMrHp33uzogFKXOMwlR+AsiaEQ1GaharTmCbKpzAy34W2V4pbF2il1zxVbQ+/QiLEhHO+1PSzGF5lstoOzTWHbTwvmdwNBg4Eo9drvWX0UOyp+msvggz54gW6yExUTdaGrevf+/iWgMArNbw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=A+5ohxxj; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=sMJzH2hO; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="A+5ohxxj"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="sMJzH2hO" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514808; bh=GtJwjFEqunLh1MR0EZ6sNcj Za1VU1Os+aybsH6L/GRo=; b=A+5ohxxjWovfA/Jszg0LKGD19mUbaRyfuhRuFjeJn7QC3ibqjW 5Rh9xeozv4vhGDqg1fB5/MGu98y1iSxr901lIN5B6Cdq1Y1LqjYGWbiyJTjL6ENCeUx6/6xebEa SlIAe1mR8ROXdZVMvV/vMEZDiYEWG5oXObabAG18ordSMMLUaGuof1Db7FMSNxWL8YUIUya5Dc7 t1fA0vyWHcqlS6ism4B82kwpG420LIiNEfezI0pB/kWtfoawe9uDFSIs79JFETCjAyMPIj3ecLs K4vmiRZFsF3pjFwMhW7DLKNbLleYpD2yfbaaaJC3ie4qn6/EKcqIAV3tP/sU9M1aZpg==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1788514808; bh=GtJwjFEqunLh1MR0EZ6sNcj Za1VU1Os+aybsH6L/GRo=; b=sMJzH2hOxCH9rBrCsj3cncajJ8ouO/wru6NMrciL5e44LGZc1X gLeUe2PnXkrBcrfFsTX74E9czQ9HO51bEtAA==; From: Bradley Morgan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , Frederic Weisbecker , Peter Zijlstra , Waiman Long , Christian Brauner , Kees Cook , Andy Walls , Mauro Carvalho Chehab , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Greg Kroah-Hartman , Jiri Slaby , "Rafael J . Wysocki" , Viresh Kumar , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Bradley Morgan , linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-serial@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v2 5/5] kthread: remove worker->task self assignment Date: Fri, 4 Sep 2026 09:40:08 +0000 Message-ID: X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 the assignment but keep the WARN_ON() as a sanity check for any OOT users still using the old API. Suggested-by: Frederic Weisbecker Signed-off-by: Bradley Morgan --- kernel/kthread.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/kthread.c b/kernel/kthread.c index 63beb59b7a3d..643407647e79 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -987,12 +987,10 @@ int kthread_worker_fn(void *worker_ptr) struct kthread_worker *worker =3D worker_ptr; struct kthread_work *work; =20 - /* - * FIXME: Update the check and remove the assignment when all kthread - * worker users are created using kthread_create_worker*() functions. + /* All workers are created with worker->task set. If this fires, + * the caller is broken. */ - WARN_ON(worker->task && worker->task !=3D current); - worker->task =3D current; + WARN_ON(worker->task !=3D current); =20 if (worker->flags & KTW_FREEZABLE) set_freezable(); --=20 2.47.3