]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Merge branch 'fix-poll-behaviour-for-tcp-based-tunnel-protocols'
authorPaolo Abeni <pabeni@redhat.com>
Thu, 23 Oct 2025 13:46:10 +0000 (15:46 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 23 Oct 2025 13:46:10 +0000 (15:46 +0200)
commitdf890ceeb2e51af4c31c7b8c1c4c855dbbeba1e5
tree304f33640c98a7fbb3f1b554049e52730816b619
parent10843e1492e474c02b91314963161731fa92af91
parentefd729408bc7d57e0c8d027b9ff514187fc1a05b
Merge branch 'fix-poll-behaviour-for-tcp-based-tunnel-protocols'

Ralf Lici says:

====================
fix poll behaviour for TCP-based tunnel protocols

This patch series introduces a polling function for datagram-style
sockets that operates on custom skb queues, and updates ovpn (the
OpenVPN data-channel offload module) and espintcp (the TCP Encapsulation
of IKE and IPsec Packets implementation) to use it accordingly.

Protocols like the aforementioned one decapsulate packets received over
TCP and deliver userspace-bound data through a separate skb queue, not
the standard sk_receive_queue. Previously, both relied on
datagram_poll(), which would signal readiness based on non-userspace
packets, leading to misleading poll results and unnecessary recv
attempts in userspace.

Patch 1 introduces datagram_poll_queue(), a variant of datagram_poll()
that accepts an explicit receive queue. This builds on the approach
introduced in commit b50b058, which extended other skb-related functions
to support custom queues. Patch 2 and 3 update espintcp_poll() and
ovpn_tcp_poll() respectively to use this helper, ensuring readiness is
only signaled when userspace data is available.

Each patch is self-contained and the ovpn one includes rationale and
lifecycle enforcement where appropriate.
====================

Link: https://patch.msgid.link/20251021100942.195010-1-ralf@mandelbit.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>