From: Gabriel Krisman Bertazi <krisman@suse.de>
To: Breno Leitao <leitao@debian.org>
Cc: sdf@google.com, axboe@kernel.dk, asml.silence@gmail.com,
willemdebruijn.kernel@gmail.com, martin.lau@linux.dev,
bpf@vger.kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, io-uring@vger.kernel.org,
kuba@kernel.org, pabeni@redhat.com
Subject: Re: [PATCH v3 6/9] io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT
Date: Mon, 21 Aug 2023 10:52:57 -0400 [thread overview]
Message-ID: <87fs4co3au.fsf@suse.de> (raw)
In-Reply-To: <ZOMpxrTzvSGQRwYi@gmail.com> (Breno Leitao's message of "Mon, 21 Aug 2023 02:09:26 -0700")
Breno Leitao <leitao@debian.org> writes:
> Hello Gabriel,
>
> On Thu, Aug 17, 2023 at 02:38:46PM -0400, Gabriel Krisman Bertazi wrote:
>> Breno Leitao <leitao@debian.org> writes:
>>
>> > +#if defined(CONFIG_NET)
>> > int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags)
>> > {
>> > struct socket *sock = cmd->file->private_data;
>> > @@ -189,8 +219,16 @@ int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags)
>> > if (ret)
>> > return ret;
>> > return arg;
>> > + case SOCKET_URING_OP_GETSOCKOPT:
>> > + return io_uring_cmd_getsockopt(sock, cmd, issue_flags);
>> > default:
>> > return -EOPNOTSUPP;
>> > }
>> > }
>> > +#else
>> > +int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags)
>> > +{
>> > + return -EOPNOTSUPP;
>> > +}
>> > +#endif
>> > EXPORT_SYMBOL_GPL(io_uring_cmd_sock);
>>
>> The CONFIG_NET guards are unrelated and need to go in a separate commit.
>> Specially because it is not only gating getsockopt, but also the already
>> merged SOCKET_URING_OP_SIOCINQ/_OP_SIOCOUTQ.
>
> Well, so far, if CONFIG_NET is disable, and you call
> io_uring_cmd_getsockopt, the callbacks will be called and returned
> -EOPNOTSUPP.
I'm not talking about io_uring_cmd_getsockopt; that would obviously
return -EOPNOTSUPP before as well. But you are changing
io_uring_cmd_sock, which does more things:
int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags)
{
[...]
if (!prot || !prot->ioctl)
return -EOPNOTSUPP;
switch (cmd->sqe->cmd_op) {
case SOCKET_URING_OP_SIOCINQ:
ret = prot->ioctl(sk, SIOCINQ, &arg);
if (ret)
return ret;
return arg;
case SOCKET_URING_OP_SIOCOUTQ:
ret = prot->ioctl(sk, SIOCOUTQ, &arg);
if (ret)
return ret;
With your patch, these two cmd_op, are now being gated by CONFIG_NET. I
think it makes sense for them to be gated by it, But it should
be in a separated change, or at least explained in your commit message.
> With this new patch, it will eventually call sk_getsockopt which does
> not exist in the CONFIG_NET=n world. That is why I have this
> protection now. I.e, this `#if defined(CONFIG_NET)` is only necessary now,
> since it is the first time this function (io_uring_cmd_sock) will call a
> function that does not exist if CONFIG_NET is disabled.
>
> I can split it in a different patch, if you think it makes a difference.
--
Gabriel Krisman Bertazi
next prev parent reply other threads:[~2023-08-21 14:53 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-17 14:55 [PATCH v3 0/9] io_uring: Initial support for {s,g}etsockopt commands Breno Leitao
2023-08-17 14:55 ` [PATCH v3 1/9] bpf: Leverage sockptr_t in BPF getsockopt hook Breno Leitao
2023-08-17 14:55 ` [PATCH v3 2/9] bpf: Leverage sockptr_t in BPF setsockopt hook Breno Leitao
2023-08-17 14:55 ` [PATCH v3 3/9] net/socket: Break down __sys_setsockopt Breno Leitao
2023-08-19 14:35 ` Willem de Bruijn
2023-08-17 14:55 ` [PATCH v3 4/9] io_uring/cmd: Pass compat mode in issue_flags Breno Leitao
2023-08-17 14:55 ` [PATCH v3 5/9] selftests/net: Extract uring helpers to be reusable Breno Leitao
2023-08-17 14:55 ` [PATCH v3 6/9] io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT Breno Leitao
2023-08-17 18:38 ` Gabriel Krisman Bertazi
2023-08-21 9:09 ` Breno Leitao
2023-08-21 14:52 ` Gabriel Krisman Bertazi [this message]
2023-08-17 14:55 ` [PATCH v3 7/9] io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT Breno Leitao
2023-08-17 14:55 ` [PATCH v3 8/9] io_uring/cmd: BPF hook for getsockopt cmd Breno Leitao
2023-08-17 19:08 ` Gabriel Krisman Bertazi
2023-08-21 9:14 ` Breno Leitao
2023-08-21 17:03 ` Gabriel Krisman Bertazi
2023-08-23 13:48 ` Breno Leitao
2023-08-22 13:50 ` David Laight
2023-08-21 20:25 ` Martin KaFai Lau
2023-08-25 16:53 ` Breno Leitao
2023-08-26 0:45 ` Martin KaFai Lau
2023-08-17 14:55 ` [PATCH v3 9/9] selftests/bpf/sockopt: Add io_uring support Breno Leitao
2023-08-21 20:59 ` Martin KaFai Lau
2023-08-25 14:15 ` Breno Leitao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fs4co3au.fsf@suse.de \
--to=krisman@suse.de \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=bpf@vger.kernel.org \
--cc=io-uring@vger.kernel.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@google.com \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.