* [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
@ 2026-06-17 17:51 Gabriel Krisman Bertazi
2026-06-17 18:07 ` Greg KH
0 siblings, 1 reply; 7+ messages in thread
From: Gabriel Krisman Bertazi @ 2026-06-17 17:51 UTC (permalink / raw)
To: stable; +Cc: io-uring, Gabriel Krisman Bertazi, Jens Axboe
[ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
This fixes a memory leak due to the lack of the cleanup hook for the
iovec. The stable backport differs from upstream by dropping the
io_connect_bpf_populate hunk, which didn't exist at the time and by
fixing the merge conflict due to the introduction of
io_bind_file_create.
Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
to store the sockaddr. Beyond allocating a much larger object than
needed, msghdr can also wrap an iovec, which will be recycled
unnecessarily. This uses the sockaddr directly.
Cc: stable@vger.kernel.org
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
Link: https://patch.msgid.link/20260602215327.1885109-2-krisman@suse.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
---
io_uring/net.c | 36 ++++++++++++++++++------------------
io_uring/opdef.c | 4 ++--
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/io_uring/net.c b/io_uring/net.c
index 7595850c2217..e34eb1624a2c 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -1770,7 +1770,7 @@ int io_socket(struct io_kiocb *req, unsigned int issue_flags)
int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{
struct io_connect *conn = io_kiocb_to_cmd(req, struct io_connect);
- struct io_async_msghdr *io;
+ struct sockaddr_storage *addr;
if (sqe->len || sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in)
return -EINVAL;
@@ -1779,17 +1779,17 @@ int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
conn->addr_len = READ_ONCE(sqe->addr2);
conn->in_progress = conn->seen_econnaborted = false;
- io = io_msg_alloc_async(req);
- if (unlikely(!io))
+ addr = io_uring_alloc_async_data(NULL, req);
+ if (unlikely(!addr))
return -ENOMEM;
- return move_addr_to_kernel(conn->addr, conn->addr_len, &io->addr);
+ return move_addr_to_kernel(conn->addr, conn->addr_len, addr);
}
int io_connect(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_connect *connect = io_kiocb_to_cmd(req, struct io_connect);
- struct io_async_msghdr *io = req->async_data;
+ struct sockaddr_storage *addr = req->async_data;
unsigned file_flags;
int ret;
bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK;
@@ -1803,8 +1803,7 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
file_flags = force_nonblock ? O_NONBLOCK : 0;
- ret = __sys_connect_file(req->file, &io->addr, connect->addr_len,
- file_flags);
+ ret = __sys_connect_file(req->file, addr, connect->addr_len, file_flags);
if ((ret == -EAGAIN || ret == -EINPROGRESS || ret == -ECONNABORTED)
&& force_nonblock) {
if (ret == -EINPROGRESS) {
@@ -1833,7 +1832,6 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
out:
if (ret < 0)
req_set_fail(req);
- io_req_msg_cleanup(req, issue_flags);
io_req_set_res(req, ret, 0);
return IOU_COMPLETE;
}
@@ -1843,15 +1841,15 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
* which in turn end up in mnt_want_write() which will grab the fs
* percpu start write sem. This can trigger a lockdep warning.
*/
-static int io_bind_file_create(const struct io_async_msghdr *io, int addr_len)
+static int io_bind_file_create(const struct sockaddr_storage *addr, int addr_len)
{
const struct sockaddr_un *sun;
- if (io->addr.ss_family != AF_UNIX)
+ if (addr->ss_family != AF_UNIX)
return 0;
if (addr_len <= offsetof(struct sockaddr_un, sun_path))
return 0;
- sun = (const struct sockaddr_un *) &io->addr;
+ sun = (const struct sockaddr_un *) addr;
return sun->sun_path[0] != '\0';
}
@@ -1859,7 +1857,7 @@ int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{
struct io_bind *bind = io_kiocb_to_cmd(req, struct io_bind);
struct sockaddr __user *uaddr;
- struct io_async_msghdr *io;
+ struct sockaddr_storage *addr;
int ret;
if (sqe->len || sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in)
@@ -1868,21 +1866,23 @@ int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
uaddr = u64_to_user_ptr(READ_ONCE(sqe->addr));
bind->addr_len = READ_ONCE(sqe->addr2);
- io = io_msg_alloc_async(req);
- if (unlikely(!io))
+ addr = io_uring_alloc_async_data(NULL, req);
+ if (unlikely(!addr))
return -ENOMEM;
- ret = move_addr_to_kernel(uaddr, bind->addr_len, &io->addr);
+
+ ret = move_addr_to_kernel(uaddr, bind->addr_len, addr);
if (unlikely(ret))
return ret;
- if (io_bind_file_create(io, bind->addr_len))
+ if (io_bind_file_create(addr, bind->addr_len))
req->flags |= REQ_F_FORCE_ASYNC;
return 0;
}
+
int io_bind(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_bind *bind = io_kiocb_to_cmd(req, struct io_bind);
- struct io_async_msghdr *io = req->async_data;
+ struct sockaddr_storage *addr = req->async_data;
struct socket *sock;
int ret;
@@ -1890,7 +1890,7 @@ int io_bind(struct io_kiocb *req, unsigned int issue_flags)
if (unlikely(!sock))
return -ENOTSOCK;
- ret = __sys_bind_socket(sock, &io->addr, bind->addr_len);
+ ret = __sys_bind_socket(sock, addr, bind->addr_len);
if (ret < 0)
req_set_fail(req);
io_req_set_res(req, ret, 0);
diff --git a/io_uring/opdef.c b/io_uring/opdef.c
index 932319633eac..a57c820567f7 100644
--- a/io_uring/opdef.c
+++ b/io_uring/opdef.c
@@ -207,7 +207,7 @@ const struct io_issue_def io_issue_defs[] = {
.unbound_nonreg_file = 1,
.pollout = 1,
#if defined(CONFIG_NET)
- .async_size = sizeof(struct io_async_msghdr),
+ .async_size = sizeof(struct sockaddr_storage),
.prep = io_connect_prep,
.issue = io_connect,
#else
@@ -504,7 +504,7 @@ const struct io_issue_def io_issue_defs[] = {
.needs_file = 1,
.prep = io_bind_prep,
.issue = io_bind,
- .async_size = sizeof(struct io_async_msghdr),
+ .async_size = sizeof(struct sockaddr_storage),
#else
.prep = io_eopnotsupp_prep,
#endif
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 17:51 [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data Gabriel Krisman Bertazi
@ 2026-06-17 18:07 ` Greg KH
2026-06-17 18:40 ` Gabriel Krisman Bertazi
0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2026-06-17 18:07 UTC (permalink / raw)
To: Gabriel Krisman Bertazi; +Cc: stable, io-uring, Jens Axboe
On Wed, Jun 17, 2026 at 01:51:02PM -0400, Gabriel Krisman Bertazi wrote:
> [ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
> This fixes a memory leak due to the lack of the cleanup hook for the
> iovec. The stable backport differs from upstream by dropping the
> io_connect_bpf_populate hunk, which didn't exist at the time and by
> fixing the merge conflict due to the introduction of
> io_bind_file_create.
>
> Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
> to store the sockaddr. Beyond allocating a much larger object than
> needed, msghdr can also wrap an iovec, which will be recycled
> unnecessarily. This uses the sockaddr directly.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
> Link: https://patch.msgid.link/20260602215327.1885109-2-krisman@suse.de
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
> ---
> io_uring/net.c | 36 ++++++++++++++++++------------------
> io_uring/opdef.c | 4 ++--
> 2 files changed, 20 insertions(+), 20 deletions(-)
This isn't in any release yet, why just 6.18? And why wan't it
originally tagged for stable?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 18:07 ` Greg KH
@ 2026-06-17 18:40 ` Gabriel Krisman Bertazi
2026-06-17 18:45 ` Gabriel Krisman Bertazi
2026-06-17 19:01 ` [PATCH stable-6.18.y] " Greg KH
0 siblings, 2 replies; 7+ messages in thread
From: Gabriel Krisman Bertazi @ 2026-06-17 18:40 UTC (permalink / raw)
To: Greg KH; +Cc: stable, io-uring, Jens Axboe
Greg KH <gregkh@linuxfoundation.org> writes:
> On Wed, Jun 17, 2026 at 01:51:02PM -0400, Gabriel Krisman Bertazi wrote:
>> [ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
>> This fixes a memory leak due to the lack of the cleanup hook for the
>> iovec. The stable backport differs from upstream by dropping the
>> io_connect_bpf_populate hunk, which didn't exist at the time and by
>> fixing the merge conflict due to the introduction of
>> io_bind_file_create.
>>
>> Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
>> to store the sockaddr. Beyond allocating a much larger object than
>> needed, msghdr can also wrap an iovec, which will be recycled
>> unnecessarily. This uses the sockaddr directly.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
>> Link: https://patch.msgid.link/20260602215327.1885109-2-krisman@suse.de
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
>> ---
>> io_uring/net.c | 36 ++++++++++++++++++------------------
>> io_uring/opdef.c | 4 ++--
>> 2 files changed, 20 insertions(+), 20 deletions(-)
>
> This isn't in any release yet?
It is queued in Linus tree during the current merge window for 7.2
> why just 6.18?
The backports are slightly different, so they were sent separately. The bug
exists since 6.12.
> And why wan't it
> originally tagged for stable?
Because it was originally a clean up that we later realized fixes a bug
and should go to stable.
> thanks,
>
> greg k-h
--
Gabriel Krisman Bertazi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 18:40 ` Gabriel Krisman Bertazi
@ 2026-06-17 18:45 ` Gabriel Krisman Bertazi
2026-06-17 19:02 ` Greg KH
2026-06-17 19:01 ` [PATCH stable-6.18.y] " Greg KH
1 sibling, 1 reply; 7+ messages in thread
From: Gabriel Krisman Bertazi @ 2026-06-17 18:45 UTC (permalink / raw)
To: Greg KH; +Cc: stable, io-uring, Jens Axboe
Gabriel Krisman Bertazi <krisman@suse.de> writes:
> The backports are slightly different, so they were sent separately. The bug
> exists since 6.12.
6.12: https://lore.kernel.org/stable/20260617175158.2977825-1-krisman@suse.de/T/#u
7.1: https://lore.kernel.org/stable/20260617174947.2975419-1-krisman@suse.de/T/#u
Do you need 7.0 too? I assumed 7.0 was EOL after the 7.1 release, if not LTS.
--
Gabriel Krisman Bertazi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 18:40 ` Gabriel Krisman Bertazi
2026-06-17 18:45 ` Gabriel Krisman Bertazi
@ 2026-06-17 19:01 ` Greg KH
1 sibling, 0 replies; 7+ messages in thread
From: Greg KH @ 2026-06-17 19:01 UTC (permalink / raw)
To: Gabriel Krisman Bertazi; +Cc: stable, io-uring, Jens Axboe
On Wed, Jun 17, 2026 at 02:40:56PM -0400, Gabriel Krisman Bertazi wrote:
> Greg KH <gregkh@linuxfoundation.org> writes:
>
> > On Wed, Jun 17, 2026 at 01:51:02PM -0400, Gabriel Krisman Bertazi wrote:
> >> [ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
> >> This fixes a memory leak due to the lack of the cleanup hook for the
> >> iovec. The stable backport differs from upstream by dropping the
> >> io_connect_bpf_populate hunk, which didn't exist at the time and by
> >> fixing the merge conflict due to the introduction of
> >> io_bind_file_create.
> >>
> >> Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
> >> to store the sockaddr. Beyond allocating a much larger object than
> >> needed, msghdr can also wrap an iovec, which will be recycled
> >> unnecessarily. This uses the sockaddr directly.
> >>
> >> Cc: stable@vger.kernel.org
> >> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
> >> Link: https://patch.msgid.link/20260602215327.1885109-2-krisman@suse.de
> >> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> >> Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
> >> ---
> >> io_uring/net.c | 36 ++++++++++++++++++------------------
> >> io_uring/opdef.c | 4 ++--
> >> 2 files changed, 20 insertions(+), 20 deletions(-)
> >
> > This isn't in any release yet?
>
> It is queued in Linus tree during the current merge window for 7.2
Ah, so it's not even in a released -rc yet.
> > why just 6.18?
>
> The backports are slightly different, so they were sent separately. The bug
> exists since 6.12.
I missed seeing a backport for 7.0, shouldn't it also go there?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 18:45 ` Gabriel Krisman Bertazi
@ 2026-06-17 19:02 ` Greg KH
2026-06-17 19:27 ` [PATCH stable-7.0.y] " Gabriel Krisman Bertazi
0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2026-06-17 19:02 UTC (permalink / raw)
To: Gabriel Krisman Bertazi; +Cc: stable, io-uring, Jens Axboe
On Wed, Jun 17, 2026 at 02:45:31PM -0400, Gabriel Krisman Bertazi wrote:
> Gabriel Krisman Bertazi <krisman@suse.de> writes:
>
> > The backports are slightly different, so they were sent separately. The bug
> > exists since 6.12.
>
> 6.12: https://lore.kernel.org/stable/20260617175158.2977825-1-krisman@suse.de/T/#u
> 7.1: https://lore.kernel.org/stable/20260617174947.2975419-1-krisman@suse.de/T/#u
>
> Do you need 7.0 too? I assumed 7.0 was EOL after the 7.1 release, if not LTS.
It will be EOL in a week or so, it's your call. But I can't take a 6.18
or 6.12 version until that happens.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH stable-7.0.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data
2026-06-17 19:02 ` Greg KH
@ 2026-06-17 19:27 ` Gabriel Krisman Bertazi
0 siblings, 0 replies; 7+ messages in thread
From: Gabriel Krisman Bertazi @ 2026-06-17 19:27 UTC (permalink / raw)
To: gregkh, stable; +Cc: io-uring, Gabriel Krisman Bertazi, Jens Axboe
[ Upstream commit 3979840cd858f30f43ea9f4e7f7f1f56de82d698 ]
This fixes a memory leak due to the lack of the cleanup hook for the
iovec. The stable backport differs from upstream by dropping the
io_connect_bpf_populate hunk, which didn't exist at the time and by
fixing the merge conflict due to the introduction of
io_bind_file_create.
Both IORING_OP_CONNECT and IORING_OP_BIND reuse the msghdr object just
to store the sockaddr. Beyond allocating a much larger object than
needed, msghdr can also wrap an iovec, which will be recycled
unnecessarily. This uses the sockaddr directly.
Cc: stable@vger.kernel.org
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
Link: https://patch.msgid.link/20260602215327.1885109-2-krisman@suse.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
---
io_uring/net.c | 36 ++++++++++++++++++------------------
io_uring/opdef.c | 4 ++--
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/io_uring/net.c b/io_uring/net.c
index 5bd3fa5a2b6d..85efde185a2b 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -1774,7 +1774,7 @@ int io_socket(struct io_kiocb *req, unsigned int issue_flags)
int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{
struct io_connect *conn = io_kiocb_to_cmd(req, struct io_connect);
- struct io_async_msghdr *io;
+ struct sockaddr_storage *addr;
if (sqe->len || sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in)
return -EINVAL;
@@ -1783,17 +1783,17 @@ int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
conn->addr_len = READ_ONCE(sqe->addr2);
conn->in_progress = conn->seen_econnaborted = false;
- io = io_msg_alloc_async(req);
- if (unlikely(!io))
+ addr = io_uring_alloc_async_data(NULL, req);
+ if (unlikely(!addr))
return -ENOMEM;
- return move_addr_to_kernel(conn->addr, conn->addr_len, &io->addr);
+ return move_addr_to_kernel(conn->addr, conn->addr_len, addr);
}
int io_connect(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_connect *connect = io_kiocb_to_cmd(req, struct io_connect);
- struct io_async_msghdr *io = req->async_data;
+ struct sockaddr_storage *addr = req->async_data;
unsigned file_flags;
int ret;
bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK;
@@ -1807,8 +1807,7 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
file_flags = force_nonblock ? O_NONBLOCK : 0;
- ret = __sys_connect_file(req->file, &io->addr, connect->addr_len,
- file_flags);
+ ret = __sys_connect_file(req->file, addr, connect->addr_len, file_flags);
if ((ret == -EAGAIN || ret == -EINPROGRESS || ret == -ECONNABORTED)
&& force_nonblock) {
if (ret == -EINPROGRESS) {
@@ -1837,7 +1836,6 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
out:
if (ret < 0)
req_set_fail(req);
- io_req_msg_cleanup(req, issue_flags);
io_req_set_res(req, ret, 0);
return IOU_COMPLETE;
}
@@ -1847,15 +1845,15 @@ int io_connect(struct io_kiocb *req, unsigned int issue_flags)
* which in turn end up in mnt_want_write() which will grab the fs
* percpu start write sem. This can trigger a lockdep warning.
*/
-static int io_bind_file_create(const struct io_async_msghdr *io, int addr_len)
+static int io_bind_file_create(const struct sockaddr_storage *addr, int addr_len)
{
const struct sockaddr_un *sun;
- if (io->addr.ss_family != AF_UNIX)
+ if (addr->ss_family != AF_UNIX)
return 0;
if (addr_len <= offsetof(struct sockaddr_un, sun_path))
return 0;
- sun = (const struct sockaddr_un *) &io->addr;
+ sun = (const struct sockaddr_un *) addr;
return sun->sun_path[0] != '\0';
}
@@ -1863,7 +1861,7 @@ int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{
struct io_bind *bind = io_kiocb_to_cmd(req, struct io_bind);
struct sockaddr __user *uaddr;
- struct io_async_msghdr *io;
+ struct sockaddr_storage *addr;
int ret;
if (sqe->len || sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in)
@@ -1872,21 +1870,23 @@ int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
uaddr = u64_to_user_ptr(READ_ONCE(sqe->addr));
bind->addr_len = READ_ONCE(sqe->addr2);
- io = io_msg_alloc_async(req);
- if (unlikely(!io))
+ addr = io_uring_alloc_async_data(NULL, req);
+ if (unlikely(!addr))
return -ENOMEM;
- ret = move_addr_to_kernel(uaddr, bind->addr_len, &io->addr);
+
+ ret = move_addr_to_kernel(uaddr, bind->addr_len, addr);
if (unlikely(ret))
return ret;
- if (io_bind_file_create(io, bind->addr_len))
+ if (io_bind_file_create(addr, bind->addr_len))
req->flags |= REQ_F_FORCE_ASYNC;
return 0;
}
+
int io_bind(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_bind *bind = io_kiocb_to_cmd(req, struct io_bind);
- struct io_async_msghdr *io = req->async_data;
+ struct sockaddr_storage *addr = req->async_data;
struct socket *sock;
int ret;
@@ -1894,7 +1894,7 @@ int io_bind(struct io_kiocb *req, unsigned int issue_flags)
if (unlikely(!sock))
return -ENOTSOCK;
- ret = __sys_bind_socket(sock, &io->addr, bind->addr_len);
+ ret = __sys_bind_socket(sock, addr, bind->addr_len);
if (ret < 0)
req_set_fail(req);
io_req_set_res(req, ret, 0);
diff --git a/io_uring/opdef.c b/io_uring/opdef.c
index 91a23baf415e..2e1752df8748 100644
--- a/io_uring/opdef.c
+++ b/io_uring/opdef.c
@@ -207,7 +207,7 @@ const struct io_issue_def io_issue_defs[] = {
.unbound_nonreg_file = 1,
.pollout = 1,
#if defined(CONFIG_NET)
- .async_size = sizeof(struct io_async_msghdr),
+ .async_size = sizeof(struct sockaddr_storage),
.prep = io_connect_prep,
.issue = io_connect,
#else
@@ -510,7 +510,7 @@ const struct io_issue_def io_issue_defs[] = {
.needs_file = 1,
.prep = io_bind_prep,
.issue = io_bind,
- .async_size = sizeof(struct io_async_msghdr),
+ .async_size = sizeof(struct sockaddr_storage),
#else
.prep = io_eopnotsupp_prep,
#endif
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-17 19:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-17 17:51 [PATCH stable-6.18.y] io_uring/net: Avoid msghdr on op_connect/op_bind async data Gabriel Krisman Bertazi
2026-06-17 18:07 ` Greg KH
2026-06-17 18:40 ` Gabriel Krisman Bertazi
2026-06-17 18:45 ` Gabriel Krisman Bertazi
2026-06-17 19:02 ` Greg KH
2026-06-17 19:27 ` [PATCH stable-7.0.y] " Gabriel Krisman Bertazi
2026-06-17 19:01 ` [PATCH stable-6.18.y] " Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.