mirror of https://github.com/torvalds/linux.git
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:
|
||
|---|---|---|
| .. | ||
| Makefile | ||
| bind.c | ||
| bind.h | ||
| crypto.c | ||
| crypto.h | ||
| crypto_aead.c | ||
| crypto_aead.h | ||
| io.c | ||
| io.h | ||
| main.c | ||
| main.h | ||
| netlink-gen.c | ||
| netlink-gen.h | ||
| netlink.c | ||
| 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 | ||
| tcp.h | ||
| udp.c | ||
| udp.h | ||