* [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
@ 2026-08-06 14:23 Chen Xiaokun
2026-08-06 14:33 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Chen Xiaokun @ 2026-08-06 14:23 UTC (permalink / raw)
To: axboe, gregkh; +Cc: linux-kernel, stable, Chen Xiaokun
The commit 657ca82526d0 introduced a temporary allowed_mask cpumask in
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@gmail.com>
---
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
2026-08-06 14:23 [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path Chen Xiaokun
@ 2026-08-06 14:33 ` Greg KH
2026-08-06 14:47 ` xk c
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2026-08-06 14:33 UTC (permalink / raw)
To: Chen Xiaokun; +Cc: axboe, linux-kernel, stable
On Thu, Aug 06, 2026 at 10:23:14PM +0800, Chen Xiaokun wrote:
> The commit 657ca82526d0 introduced a temporary allowed_mask cpumask in
> 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@gmail.com>
> ---
> 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
>
>
Why is this a stable-only patch? Was the backport wrong? Or is this
also in Linus's tree?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
2026-08-06 14:33 ` Greg KH
@ 2026-08-06 14:47 ` xk c
2026-08-06 15:29 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: xk c @ 2026-08-06 14:47 UTC (permalink / raw)
To: Greg KH; +Cc: axboe, linux-kernel, stable
Greg KH <gregkh@linuxfoundation.org> 于2026年8月6日周四 22:33写道:
>
> On Thu, Aug 06, 2026 at 10:23:14PM +0800, Chen Xiaokun wrote:
> > The commit 657ca82526d0 introduced a temporary allowed_mask cpumask in
> > 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@gmail.com>
> > ---
> > 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
> >
> >
>
> Why is this a stable-only patch? Was the backport wrong? Or is this
> also in Linus's tree?
>
Linus's tree has not this issue.
> thanks,
>
> greg k-h
thanks,
Chen
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
2026-08-06 14:47 ` xk c
@ 2026-08-06 15:29 ` Greg KH
2026-08-06 16:07 ` Chen Xiaokun
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2026-08-06 15:29 UTC (permalink / raw)
To: xk c; +Cc: axboe, linux-kernel, stable
On Thu, Aug 06, 2026 at 10:47:02PM +0800, xk c wrote:
> Greg KH <gregkh@linuxfoundation.org> 于2026年8月6日周四 22:33写道:
> >
> > On Thu, Aug 06, 2026 at 10:23:14PM +0800, Chen Xiaokun wrote:
> > > The commit 657ca82526d0 introduced a temporary allowed_mask cpumask in
> > > 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@gmail.com>
> > > ---
> > > 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
> > >
> > >
> >
> > Why is this a stable-only patch? Was the backport wrong? Or is this
> > also in Linus's tree?
> >
>
> Linus's tree has not this issue.
You need to explain why, in great detail, Linus's tree does not have
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,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path
2026-08-06 15:29 ` Greg KH
@ 2026-08-06 16:07 ` Chen Xiaokun
0 siblings, 0 replies; 5+ messages in thread
From: Chen Xiaokun @ 2026-08-06 16:07 UTC (permalink / raw)
To: Greg KH; +Cc: axboe, linux-kernel, stable
在 2026/8/6 23:29, Greg KH 写道:
> On Thu, Aug 06, 2026 at 10:47:02PM +0800, xk c wrote:
>> Greg KH <gregkh@linuxfoundation.org> 于2026年8月6日周四 22:33写道:
>>> On Thu, Aug 06, 2026 at 10:23:14PM +0800, Chen Xiaokun wrote:
>>>> The commit 657ca82526d0 introduced a temporary allowed_mask cpumask in
>>>> 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@gmail.com>
>>>> ---
>>>> 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
>>>>
>>>>
>>> Why is this a stable-only patch? Was the backport wrong? Or is this
>>> also in Linus's tree?
>>>
>> Linus's tree has not this issue.
> You need to explain why, in great detail, Linus's tree does not have
> 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,
This is a stable-only patch because the backport introduced a
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-h
>
>
Thanks for your patience,
Chen
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-06 16:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-06 14:23 [PATCH 6.1.y] Fix memory leak in io_wq_create() on success path Chen Xiaokun
2026-08-06 14:33 ` Greg KH
2026-08-06 14:47 ` xk c
2026-08-06 15:29 ` Greg KH
2026-08-06 16:07 ` Chen Xiaokun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox