diff mbox series

io_uring/net: drop unused 'fast_iov_one' entry

Message ID 7366e668-7083-4924-af43-5d5ba66fb76a@kernel.dk (mailing list archive)
State New
Headers show
Series io_uring/net: drop unused 'fast_iov_one' entry | expand

Commit Message

Jens Axboe March 19, 2024, 11:37 p.m. UTC
Doesn't really matter at this point, as the fast_iov entries dominate
the size of io_async_msghdr. But that may not always be the case, so
drop this unused member. It turns out it got added in a previous commit,
but never actually used for anything.

Fixes: 9bb66906f23e ("io_uring: support multishot in recvmsg")
Signed-off-by: Jens Axboe <axboe@kernel.dk>

---

Comments

Dylan Yudaken March 20, 2024, 1:59 p.m. UTC | #1
On Tue, Mar 19, 2024 at 11:37 PM Jens Axboe <axboe@kernel.dk> wrote:
>
> Doesn't really matter at this point, as the fast_iov entries dominate
> the size of io_async_msghdr. But that may not always be the case, so
> drop this unused member. It turns out it got added in a previous commit,
> but never actually used for anything.
>
> Fixes: 9bb66906f23e ("io_uring: support multishot in recvmsg")
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>
> ---
>
> diff --git a/io_uring/net.h b/io_uring/net.h
> index 191009979bcb..9d7962f65f26 100644
> --- a/io_uring/net.h
> +++ b/io_uring/net.h
> @@ -10,7 +10,6 @@ struct io_async_msghdr {
>         union {
>                 struct iovec            fast_iov[UIO_FASTIOV];
>                 struct {
> -                       struct iovec    fast_iov_one;
>                         __kernel_size_t controllen;
>                         int             namelen;
>                         __kernel_size_t payloadlen;
>

I "believe" this is used in the async paths, where fast_iov[0] gets
used (since multishot always has exactly one iovec) and so
fast_iov_one is just a placeholder.
I think that means it's not safe to remove until after your async patches.

Although I haven't verified this by testing.

Dylan
Jens Axboe March 20, 2024, 2:41 p.m. UTC | #2
On 3/20/24 7:59 AM, Dylan Yudaken wrote:
> On Tue, Mar 19, 2024 at 11:37?PM Jens Axboe <axboe@kernel.dk> wrote:
>>
>> Doesn't really matter at this point, as the fast_iov entries dominate
>> the size of io_async_msghdr. But that may not always be the case, so
>> drop this unused member. It turns out it got added in a previous commit,
>> but never actually used for anything.
>>
>> Fixes: 9bb66906f23e ("io_uring: support multishot in recvmsg")
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>>
>> ---
>>
>> diff --git a/io_uring/net.h b/io_uring/net.h
>> index 191009979bcb..9d7962f65f26 100644
>> --- a/io_uring/net.h
>> +++ b/io_uring/net.h
>> @@ -10,7 +10,6 @@ struct io_async_msghdr {
>>         union {
>>                 struct iovec            fast_iov[UIO_FASTIOV];
>>                 struct {
>> -                       struct iovec    fast_iov_one;
>>                         __kernel_size_t controllen;
>>                         int             namelen;
>>                         __kernel_size_t payloadlen;
>>
> 
> I "believe" this is used in the async paths, where fast_iov[0] gets
> used (since multishot always has exactly one iovec) and so
> fast_iov_one is just a placeholder.
> I think that means it's not safe to remove until after your async patches.

Oh that's nasty, no comment about that, nor any direct use of it. Poor
shame on whoever wrote that code :-)

I'll double check.
diff mbox series

Patch

diff --git a/io_uring/net.h b/io_uring/net.h
index 191009979bcb..9d7962f65f26 100644
--- a/io_uring/net.h
+++ b/io_uring/net.h
@@ -10,7 +10,6 @@  struct io_async_msghdr {
 	union {
 		struct iovec		fast_iov[UIO_FASTIOV];
 		struct {
-			struct iovec	fast_iov_one;
 			__kernel_size_t	controllen;
 			int		namelen;
 			__kernel_size_t	payloadlen;