On Wed, 24 May 2023 16:33:09 +0100 David Howells wrote: > Convert tls_sw_sendpage() and tls_sw_sendpage_locked() to use sendmsg() > with MSG_SPLICE_PAGES rather than directly splicing in the pages itself. > > [!] Note that tls_sw_sendpage_locked() appears to have the wrong locking > upstream. I think the caller will only hold the socket lock, but it > should hold tls_ctx->tx_lock too. Lock ordering, as you probably discovered. It is what it is :| > + if (msg->msg_flags & ~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL | > + MSG_CMSG_COMPAT | MSG_SPLICE_PAGES | > + MSG_SENDPAGE_NOTLAST | MSG_SENDPAGE_NOPOLICY)) > + return -EOPNOTSUPP; Now MSG_SENDPAGE_* can leak in thru the sendmsg() call? Letting MSG_SENDPAGE_NOPOLICY in seems pretty suspicious, no?