]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Feb 2023 14:25:18 +0000 (15:25 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Feb 2023 14:25:18 +0000 (15:25 +0100)
added patches:
tcp-fix-listen-regression-in-5.15.88.patch

queue-5.15/series
queue-5.15/tcp-fix-listen-regression-in-5.15.88.patch [new file with mode: 0644]

index cf640c74edac3195ffdd273fa1f8c51eef4ce40d..98951e921480f51ab2f84a094e6aab274efa2b32 100644 (file)
@@ -39,3 +39,4 @@ platform-x86-amd-pmc-fix-compilation-when-config_debugfs-is-disabled.patch
 platform-x86-amd-pmc-correct-usage-of-smu-version.patch
 platform-x86-amd-pmc-disable-irq1-wakeup-for-rn-czn.patch
 netfilter-nft_tproxy-restrict-to-prerouting-hook.patch
+tcp-fix-listen-regression-in-5.15.88.patch
diff --git a/queue-5.15/tcp-fix-listen-regression-in-5.15.88.patch b/queue-5.15/tcp-fix-listen-regression-in-5.15.88.patch
new file mode 100644 (file)
index 0000000..77a0456
--- /dev/null
@@ -0,0 +1,39 @@
+From kuniyu@amazon.com  Fri Feb 17 15:21:48 2023
+From: Kuniyuki Iwashima <kuniyu@amazon.com>
+Date: Mon, 13 Feb 2023 20:45:48 +0000
+Subject: tcp: Fix listen() regression in 5.15.88.
+To: <gregkh@linuxfoundation.org>
+Cc: <kuniyu@amazon.com>, <netdev@vger.kernel.org>, <regressions@lists.linux.dev>, <stable@vger.kernel.org>, <w@1wt.eu>, <winter@winter.cafe>
+Message-ID: <20230213205835.56151-1-kuniyu@amazon.com>
+
+From: Kuniyuki Iwashima <kuniyu@amazon.com>
+
+When we backport dadd0dcaa67d ("net/ulp: prevent ULP without clone op from
+entering the LISTEN status"), we have accidentally backported a part of
+7a7160edf1bf ("net: Return errno in sk->sk_prot->get_port().") and removed
+err = -EADDRINUSE in inet_csk_listen_start().
+
+Thus, listen() no longer returns -EADDRINUSE even if ->get_port() failed
+as reported in [0].
+
+We set -EADDRINUSE to err just before ->get_port() to fix the regression.
+
+[0]: https://lore.kernel.org/stable/EF8A45D0-768A-4CD5-9A8A-0FA6E610ABF7@winter.cafe/
+
+Reported-by: Winter <winter@winter.cafe>
+Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/ipv4/inet_connection_sock.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/net/ipv4/inet_connection_sock.c
++++ b/net/ipv4/inet_connection_sock.c
+@@ -1070,6 +1070,7 @@ int inet_csk_listen_start(struct sock *s
+        * It is OK, because this socket enters to hash table only
+        * after validation is complete.
+        */
++      err = -EADDRINUSE;
+       inet_sk_state_store(sk, TCP_LISTEN);
+       if (!sk->sk_prot->get_port(sk, inet->inet_num)) {
+               inet->inet_sport = htons(inet->inet_num);