Re: [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
From: Chen Xiaokun
Date: Thu Aug 06 2026 - 12:25:59 EST
在 2026/8/6 23:29, Greg KH 写道:
On Thu, Aug 06, 2026 at 10:47:02PM +0800, xk c wrote:This is a stable-only patch because the backport introduced a
Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> 于2026年8月6日周四 22:33写道:You need to explain why, in great detail, Linus's tree does not have
On Thu, Aug 06, 2026 at 10:23:14PM +0800, Chen Xiaokun wrote:Linus's tree has not this issue.
The commit 657ca82526d0 introduced a temporary allowed_mask cpumask inWhy is this a stable-only patch? Was the backport wrong? Or is this
io_wq_create(), which was freed only on the error path. This caused a
memory leak of cpumask_size() bytes on every successful io_wq_create().
Fixes: 657ca82526d0 ("io_uring/io-wq: inherit cpuset of cgroup in io worker")
Signed-off-by: Chen Xiaokun <shinnkka1@xxxxxxxxx>
---
io_uring/io-wq.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/io_uring/io-wq.c b/io_uring/io-wq.c
index 66fdd69fd6cb..34a1a9067cc2 100644
--- a/io_uring/io-wq.c
+++ b/io_uring/io-wq.c
@@ -1218,6 +1218,7 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data)
wq->task = get_task_struct(data->task);
atomic_set(&wq->worker_refs, 1);
init_completion(&wq->worker_done);
+ free_cpumask_var(allowed_mask);
return wq;
err:
io_wq_put_hash(data->hash);
--
2.55.0
also in Linus's tree?
this problem in the changelog.
For example, try answering the questions I asked here, that should
provide you a framework for what to write.
thnanks,
temporary allowed_mask variable without freeing it on the success
path. In Linus's tree, it is bound to wq, so there is no memory leak.
greg k-hThanks for your patience,
Chen