]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ovpn: use datagram_poll_queue for socket readiness in TCP
authorRalf Lici <ralf@mandelbit.com>
Tue, 21 Oct 2025 10:09:42 +0000 (12:09 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 23 Oct 2025 13:46:04 +0000 (15:46 +0200)
commitefd729408bc7d57e0c8d027b9ff514187fc1a05b
tree304f33640c98a7fbb3f1b554049e52730816b619
parent0fc3e32c2c069f541f2724d91f5e98480b640326
ovpn: use datagram_poll_queue for socket readiness in TCP

openvpn TCP encapsulation uses a custom queue to deliver packets to
userspace. Currently it relies on datagram_poll, which checks
sk_receive_queue, leading to false readiness signals when that queue
contains non-userspace packets.

Switch ovpn_tcp_poll to use datagram_poll_queue with the peer's
user_queue, ensuring poll only signals readiness when userspace data is
actually available. Also refactor ovpn_tcp_poll in order to enforce the
assumption we can make on the lifetime of ovpn_sock and peer.

Fixes: 11851cbd60ea ("ovpn: implement TCP transport")
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://patch.msgid.link/20251021100942.195010-4-ralf@mandelbit.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ovpn/tcp.c