linux/drivers/net/ovpn
Ralf Lici efd729408b 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: 11851cbd60 ("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>
2025-10-23 15:46:04 +02:00
..
Makefile
bind.c
bind.h
crypto.c
crypto.h
crypto_aead.c
crypto_aead.h
io.c ovpn: reset GSO metadata after decapsulation 2025-07-16 11:53:19 +02:00
io.h
main.c
main.h
netlink-gen.c ovpn: reject unexpected netlink attributes 2025-07-16 11:51:30 +02:00
netlink-gen.h ovpn: reject unexpected netlink attributes 2025-07-16 11:51:30 +02:00
netlink.c ovpn: reject unexpected netlink attributes 2025-07-16 11:51:30 +02:00
netlink.h
ovpnpriv.h
peer.c
peer.h
pktid.c
pktid.h
proto.h
skb.h
socket.c
socket.h
stats.c
stats.h
tcp.c ovpn: use datagram_poll_queue for socket readiness in TCP 2025-10-23 15:46:04 +02:00
tcp.h
udp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-07-17 11:00:33 -07:00
udp.h