Re: [PATCH] media: platform: Add WQ_PERCPU to alloc_workqueue users

From: Dan Scally

Date: Thu Jan 15 2026 - 16:20:55 EST


Hi Marco

On 13/01/2026 14:04, Marco Crivellari wrote:
This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The refactoring is going to alter the default behavior of
alloc_workqueue() to be unbound by default.

With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND),
any alloc_workqueue() caller that doesn’t explicitly specify WQ_UNBOUND
must now use WQ_PERCPU. For more details see the Link tag below.

In order to keep alloc_workqueue() behavior identical, explicitly request
WQ_PERCPU.

Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@xxxxxxxxxxxxx/
Suggested-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
---

Sorry for the delay getting back to you. I haven't looked at the impact of the refactoring in detail, but I'm happy to trust you on the workqueue internals and this is line with the changes to other drivers across the tree so:

Acked-by: Daniel Scally <dan.scally@xxxxxxxxxxxxxxxx>

drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-video.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-video.c b/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-video.c
index 799453250b85..e3ff0482a84e 100644
--- a/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-video.c
+++ b/drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-video.c
@@ -445,7 +445,7 @@ int rzv2h_ivc_init_vdev(struct rzv2h_ivc *ivc, struct v4l2_device *v4l2_dev)
INIT_LIST_HEAD(&ivc->buffers.queue);
INIT_WORK(&ivc->buffers.work, rzv2h_ivc_transfer_buffer);
- ivc->buffers.async_wq = alloc_workqueue("rzv2h-ivc", 0, 0);
+ ivc->buffers.async_wq = alloc_workqueue("rzv2h-ivc", WQ_PERCPU, 0);
if (!ivc->buffers.async_wq)
return -EINVAL;