2023-03-08 15:19:33

by Adnan Dizdarevic

[permalink] [raw]
Subject: [PATCH] net/packet: Allow MSG_NOSIGNAL flag in packet_recvmsg

By adding MSG_NOSIGNAL flag to allowed flags in packet_recvmsg, this
patch fixes io_uring recvmsg operations returning -EINVAL when used with
packet socket file descriptors.

In io_uring, MSG_NOSIGNAL flag is added in:
io_uring/net.c/io_recvmsg_prep

Signed-off-by: Adnan Dizdarevic <[email protected]>
---
net/packet/af_packet.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index d4e76e2ae153..5ce62194af9e 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -3410,7 +3410,8 @@ static int packet_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
unsigned int origlen = 0;

err = -EINVAL;
- if (flags & ~(MSG_PEEK|MSG_DONTWAIT|MSG_TRUNC|MSG_CMSG_COMPAT|MSG_ERRQUEUE))
+ if (flags & ~(MSG_PEEK | MSG_DONTWAIT | MSG_TRUNC | MSG_CMSG_COMPAT |
+ MSG_ERRQUEUE | MSG_NOSIGNAL))
goto out;

#if 0
--
2.37.2




2023-03-08 15:39:23

by Willem de Bruijn

[permalink] [raw]
Subject: RE: [PATCH] net/packet: Allow MSG_NOSIGNAL flag in packet_recvmsg

Adnan Dizdarevic wrote:
> By adding MSG_NOSIGNAL flag to allowed flags in packet_recvmsg, this
> patch fixes io_uring recvmsg operations returning -EINVAL when used with
> packet socket file descriptors.
>
> In io_uring, MSG_NOSIGNAL flag is added in:
> io_uring/net.c/io_recvmsg_prep
>
> Signed-off-by: Adnan Dizdarevic <[email protected]>

This was discussed two weeks ago and io_uring adapted to no longer
require this change.

https://lore.kernel.org/netdev/Y%[email protected]/T/




2023-03-08 15:41:06

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] net/packet: Allow MSG_NOSIGNAL flag in packet_recvmsg

On 3/8/23 8:18 AM, Adnan Dizdarevic wrote:
> By adding MSG_NOSIGNAL flag to allowed flags in packet_recvmsg, this
> patch fixes io_uring recvmsg operations returning -EINVAL when used with
> packet socket file descriptors.
>
> In io_uring, MSG_NOSIGNAL flag is added in:
> io_uring/net.c/io_recvmsg_prep

FWIW, this did get fixed in io_uring, it's in 6.3-rc1 and is making
its way into the stable releases too:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7605c43d67face310b4b87dee1a28bc0c8cd8c0f

--
Jens Axboe



2023-03-09 06:38:26

by Adnan Dizdarevic

[permalink] [raw]
Subject: RE: [PATCH] net/packet: Allow MSG_NOSIGNAL flag in packet_recvmsg

Thanks for the update. I didn't notice it got fixed in the meantime.

-----Original Message-----
From: Willem de Bruijn <[email protected]>
Sent: 08 March 2023 16:38
To: Adnan Dizdarevic <[email protected]>; [email protected]
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: RE: [PATCH] net/packet: Allow MSG_NOSIGNAL flag in packet_recvmsg

Adnan Dizdarevic wrote:
> By adding MSG_NOSIGNAL flag to allowed flags in packet_recvmsg, this
> patch fixes io_uring recvmsg operations returning -EINVAL when used
> with packet socket file descriptors.
>
> In io_uring, MSG_NOSIGNAL flag is added in:
> io_uring/net.c/io_recvmsg_prep
>
> Signed-off-by: Adnan Dizdarevic <[email protected]>

This was discussed two weeks ago and io_uring adapted to no longer require this change.

https://lore.kernel.org/netdev/Y%[email protected]/T/