Patch "tls: Fix tls_sw_sendmsg error handling" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    tls: Fix tls_sw_sendmsg error handling

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     tls-fix-tls_sw_sendmsg-error-handling.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 379c04d620762b6376be5550598daf0c1aa5b1b8
Author: Benjamin Coddington <bcodding@xxxxxxxxxx>
Date:   Sat Jan 4 10:29:45 2025 -0500

    tls: Fix tls_sw_sendmsg error handling
    
    [ Upstream commit b341ca51d2679829d26a3f6a4aa9aee9abd94f92 ]
    
    We've noticed that NFS can hang when using RPC over TLS on an unstable
    connection, and investigation shows that the RPC layer is stuck in a tight
    loop attempting to transmit, but forever getting -EBADMSG back from the
    underlying network.  The loop begins when tcp_sendmsg_locked() returns
    -EPIPE to tls_tx_records(), but that error is converted to -EBADMSG when
    calling the socket's error reporting handler.
    
    Instead of converting errors from tcp_sendmsg_locked(), let's pass them
    along in this path.  The RPC layer handles -EPIPE by reconnecting the
    transport, which prevents the endless attempts to transmit on a broken
    connection.
    
    Signed-off-by: Benjamin Coddington <bcodding@xxxxxxxxxx>
    Fixes: a42055e8d2c3 ("net/tls: Add support for async encryption of records for performance")
    Link: https://patch.msgid.link/9594185559881679d81f071b181a10eb07cd079f.1736004079.git.bcodding@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index c17c3a14b9c1..0f93b0ba72df 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -453,7 +453,7 @@ int tls_tx_records(struct sock *sk, int flags)
 
 tx_err:
 	if (rc < 0 && rc != -EAGAIN)
-		tls_err_abort(sk, -EBADMSG);
+		tls_err_abort(sk, rc);
 
 	return rc;
 }




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux