Patch "net/smc: avoid overwriting when adjusting sock bufsizes" has been added to the 6.1-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

    net/smc: avoid overwriting when adjusting sock bufsizes

to the 6.1-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:
     net-smc-avoid-overwriting-when-adjusting-sock-bufsiz.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 6ca42f77ddfd213d53fa7f27418615e952538fb9
Author: Wen Gu <guwen@xxxxxxxxxxxxxxxxx>
Date:   Fri May 31 16:54:17 2024 +0800

    net/smc: avoid overwriting when adjusting sock bufsizes
    
    [ Upstream commit fb0aa0781a5f457e3864da68af52c3b1f4f7fd8f ]
    
    When copying smc settings to clcsock, avoid setting clcsock's sk_sndbuf
    to sysctl_tcp_wmem[1], since this may overwrite the value set by
    tcp_sndbuf_expand() in TCP connection establishment.
    
    And the other setting sk_{snd|rcv}buf to sysctl value in
    smc_adjust_sock_bufsizes() can also be omitted since the initialization
    of smc sock and clcsock has set sk_{snd|rcv}buf to smc.sysctl_{w|r}mem
    or ipv4_sysctl_tcp_{w|r}mem[1].
    
    Fixes: 30c3c4a4497c ("net/smc: Use correct buffer sizes when switching between TCP and SMC")
    Link: https://lore.kernel.org/r/5eaf3858-e7fd-4db8-83e8-3d7a3e0e9ae2@xxxxxxxxxxxxxxxxx
    Signed-off-by: Wen Gu <guwen@xxxxxxxxxxxxxxxxx>
    Reviewed-by: Wenjia Zhang <wenjia@xxxxxxxxxxxxx>
    Reviewed-by: Gerd Bayer <gbayer@xxxxxxxxxxxxx>, too.
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index b6609527dff62..e86db21fef6e5 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -462,29 +462,11 @@ static int smc_bind(struct socket *sock, struct sockaddr *uaddr,
 static void smc_adjust_sock_bufsizes(struct sock *nsk, struct sock *osk,
 				     unsigned long mask)
 {
-	struct net *nnet = sock_net(nsk);
-
 	nsk->sk_userlocks = osk->sk_userlocks;
-	if (osk->sk_userlocks & SOCK_SNDBUF_LOCK) {
+	if (osk->sk_userlocks & SOCK_SNDBUF_LOCK)
 		nsk->sk_sndbuf = osk->sk_sndbuf;
-	} else {
-		if (mask == SK_FLAGS_SMC_TO_CLC)
-			WRITE_ONCE(nsk->sk_sndbuf,
-				   READ_ONCE(nnet->ipv4.sysctl_tcp_wmem[1]));
-		else
-			WRITE_ONCE(nsk->sk_sndbuf,
-				   2 * READ_ONCE(nnet->smc.sysctl_wmem));
-	}
-	if (osk->sk_userlocks & SOCK_RCVBUF_LOCK) {
+	if (osk->sk_userlocks & SOCK_RCVBUF_LOCK)
 		nsk->sk_rcvbuf = osk->sk_rcvbuf;
-	} else {
-		if (mask == SK_FLAGS_SMC_TO_CLC)
-			WRITE_ONCE(nsk->sk_rcvbuf,
-				   READ_ONCE(nnet->ipv4.sysctl_tcp_rmem[1]));
-		else
-			WRITE_ONCE(nsk->sk_rcvbuf,
-				   2 * READ_ONCE(nnet->smc.sysctl_rmem));
-	}
 }
 
 static void smc_copy_sock_settings(struct sock *nsk, struct sock *osk,




[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