[packages/kernel] up to 6.17.3
atler
atler at pld-linux.org
Wed Oct 15 20:43:57 CEST 2025
commit 919ee5fbfbec4deba46d6008eac3cf88f3dd665a
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Oct 15 20:42:18 2025 +0200
up to 6.17.3
number of connections per ip to ksmbd server defaults to 8 now and can
be modified with ksmbd-tools >= 3.5.4
kernel.spec | 6 +-
ksmbd-one-conn-per-ip.patch | 174 --------------------------------------------
2 files changed, 2 insertions(+), 178 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index b21909c2..2e7e75cf 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -53,7 +53,7 @@
%define rel 1
%define basever 6.17
-%define postver .2
+%define postver .3
# define this to '-%{basever}' for longterm branch
%define versuffix %{nil}
@@ -107,7 +107,7 @@ Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
# Source0-md5: ac8cfd661ca56a142bb92f9d9e7754a0
%if "%{postver}" != ".0"
Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
-# Patch0-md5: 0bf71091dcdaa15e722ee896f16b9381
+# Patch0-md5: 66830be3d3dddab8b04a5e79062461b1
%endif
Source1: kernel.sysconfig
@@ -133,7 +133,6 @@ Source44: kernel-rt.config
Source58: kernel-inittmpfs.config
-Patch1: ksmbd-one-conn-per-ip.patch
Patch2: android-enable-building-binder-as-module.patch
# http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
Patch3: kernel-fbcondecor.patch
@@ -545,7 +544,6 @@ cd linux-%{basever}
%endif
%if %{without vanilla}
-%patch -P1 -p1 -R
%patch -P2 -p1
%if %{with fbcondecor}
diff --git a/ksmbd-one-conn-per-ip.patch b/ksmbd-one-conn-per-ip.patch
deleted file mode 100644
index fb0a9e47..00000000
--- a/ksmbd-one-conn-per-ip.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From c0d41112f1a5828c194b59cca953114bc3776ef2 Mon Sep 17 00:00:00 2001
-From: Namjae Jeon <linkinjeon at kernel.org>
-Date: Sun, 17 Aug 2025 09:48:40 +0900
-Subject: ksmbd: extend the connection limiting mechanism to support IPv6
-
-Update the connection tracking logic to handle both IPv4 and IPv6
-address families.
-
-Cc: stable at vger.kernel.org
-Fixes: e6bb91939740 ("ksmbd: limit repeated connections from clients with the same IP")
-Signed-off-by: Namjae Jeon <linkinjeon at kernel.org>
-Signed-off-by: Steve French <stfrench at microsoft.com>
----
- fs/smb/server/connection.h | 7 ++++++-
- fs/smb/server/transport_tcp.c | 26 +++++++++++++++++++++++---
- 2 files changed, 29 insertions(+), 4 deletions(-)
-
-(limited to 'fs/smb/server')
-
-diff --git a/fs/smb/server/connection.h b/fs/smb/server/connection.h
-index 31dd1caac1e8a8..2aa8084bb59302 100644
---- a/fs/smb/server/connection.h
-+++ b/fs/smb/server/connection.h
-@@ -46,7 +46,12 @@ struct ksmbd_conn {
- struct mutex srv_mutex;
- int status;
- unsigned int cli_cap;
-- __be32 inet_addr;
-+ union {
-+ __be32 inet_addr;
-+#if IS_ENABLED(CONFIG_IPV6)
-+ u8 inet6_addr[16];
-+#endif
-+ };
- char *request_buf;
- struct ksmbd_transport *transport;
- struct nls_table *local_nls;
-diff --git a/fs/smb/server/transport_tcp.c b/fs/smb/server/transport_tcp.c
-index b1df02e321b00a..4337df97987da3 100644
---- a/fs/smb/server/transport_tcp.c
-+++ b/fs/smb/server/transport_tcp.c
-@@ -85,7 +85,14 @@ static struct tcp_transport *alloc_transport(struct socket *client_sk)
- return NULL;
- }
-
-+#if IS_ENABLED(CONFIG_IPV6)
-+ if (client_sk->sk->sk_family == AF_INET6)
-+ memcpy(&conn->inet6_addr, &client_sk->sk->sk_v6_daddr, 16);
-+ else
-+ conn->inet_addr = inet_sk(client_sk->sk)->inet_daddr;
-+#else
- conn->inet_addr = inet_sk(client_sk->sk)->inet_daddr;
-+#endif
- conn->transport = KSMBD_TRANS(t);
- KSMBD_TRANS(t)->conn = conn;
- KSMBD_TRANS(t)->ops = &ksmbd_tcp_transport_ops;
-@@ -229,7 +236,6 @@ static int ksmbd_kthread_fn(void *p)
- {
- struct socket *client_sk = NULL;
- struct interface *iface = (struct interface *)p;
-- struct inet_sock *csk_inet;
- struct ksmbd_conn *conn;
- int ret;
-
-@@ -252,13 +258,27 @@ static int ksmbd_kthread_fn(void *p)
- /*
- * Limits repeated connections from clients with the same IP.
- */
-- csk_inet = inet_sk(client_sk->sk);
- down_read(&conn_list_lock);
- list_for_each_entry(conn, &conn_list, conns_list)
-- if (csk_inet->inet_daddr == conn->inet_addr) {
-+#if IS_ENABLED(CONFIG_IPV6)
-+ if (client_sk->sk->sk_family == AF_INET6) {
-+ if (memcmp(&client_sk->sk->sk_v6_daddr,
-+ &conn->inet6_addr, 16) == 0) {
-+ ret = -EAGAIN;
-+ break;
-+ }
-+ } else if (inet_sk(client_sk->sk)->inet_daddr ==
-+ conn->inet_addr) {
-+ ret = -EAGAIN;
-+ break;
-+ }
-+#else
-+ if (inet_sk(client_sk->sk)->inet_daddr ==
-+ conn->inet_addr) {
- ret = -EAGAIN;
- break;
- }
-+#endif
- up_read(&conn_list_lock);
- if (ret == -EAGAIN)
- continue;
---
-cgit 1.2.3-korg
-
-From e6bb9193974059ddbb0ce7763fa3882bd60d4dc3 Mon Sep 17 00:00:00 2001
-From: Namjae Jeon <linkinjeon at kernel.org>
-Date: Tue, 5 Aug 2025 18:13:13 +0900
-Subject: ksmbd: limit repeated connections from clients with the same IP
-
-Repeated connections from clients with the same IP address may exhaust
-the max connections and prevent other normal client connections.
-This patch limit repeated connections from clients with the same IP.
-
-Reported-by: tianshuo han <hantianshuo233 at gmail.com>
-Cc: stable at vger.kernel.org
-Signed-off-by: Namjae Jeon <linkinjeon at kernel.org>
-Signed-off-by: Steve French <stfrench at microsoft.com>
----
- fs/smb/server/connection.h | 1 +
- fs/smb/server/transport_tcp.c | 17 +++++++++++++++++
- 2 files changed, 18 insertions(+)
-
-(limited to 'fs/smb/server')
-
-diff --git a/fs/smb/server/connection.h b/fs/smb/server/connection.h
-index dd3e0e3f7bf046..31dd1caac1e8a8 100644
---- a/fs/smb/server/connection.h
-+++ b/fs/smb/server/connection.h
-@@ -46,6 +46,7 @@ struct ksmbd_conn {
- struct mutex srv_mutex;
- int status;
- unsigned int cli_cap;
-+ __be32 inet_addr;
- char *request_buf;
- struct ksmbd_transport *transport;
- struct nls_table *local_nls;
-diff --git a/fs/smb/server/transport_tcp.c b/fs/smb/server/transport_tcp.c
-index 4e9f98db9ff409..d72588f33b9cd1 100644
---- a/fs/smb/server/transport_tcp.c
-+++ b/fs/smb/server/transport_tcp.c
-@@ -87,6 +87,7 @@ static struct tcp_transport *alloc_transport(struct socket *client_sk)
- return NULL;
- }
-
-+ conn->inet_addr = inet_sk(client_sk->sk)->inet_daddr;
- conn->transport = KSMBD_TRANS(t);
- KSMBD_TRANS(t)->conn = conn;
- KSMBD_TRANS(t)->ops = &ksmbd_tcp_transport_ops;
-@@ -230,6 +231,8 @@ static int ksmbd_kthread_fn(void *p)
- {
- struct socket *client_sk = NULL;
- struct interface *iface = (struct interface *)p;
-+ struct inet_sock *csk_inet;
-+ struct ksmbd_conn *conn;
- int ret;
-
- while (!kthread_should_stop()) {
-@@ -248,6 +251,20 @@ static int ksmbd_kthread_fn(void *p)
- continue;
- }
-
-+ /*
-+ * Limits repeated connections from clients with the same IP.
-+ */
-+ csk_inet = inet_sk(client_sk->sk);
-+ down_read(&conn_list_lock);
-+ list_for_each_entry(conn, &conn_list, conns_list)
-+ if (csk_inet->inet_daddr == conn->inet_addr) {
-+ ret = -EAGAIN;
-+ break;
-+ }
-+ up_read(&conn_list_lock);
-+ if (ret == -EAGAIN)
-+ continue;
-+
- if (server_conf.max_connections &&
- atomic_inc_return(&active_num_conn) >= server_conf.max_connections) {
- pr_info_ratelimited("Limit the maximum number of connections(%u)\n",
---
-cgit 1.2.3-korg
-
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/919ee5fbfbec4deba46d6008eac3cf88f3dd665a
More information about the pld-cvs-commit
mailing list