From: wen.yang@linux.dev
To: Joel Granados <joel.granados@kernel.org>
Cc: Wen Yang <wen.yang@linux.dev>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC PATCH 17/39] sysctl: store remaining network sysctl bounds by value
Date: Thu, 29 Oct 2026 00:34:56 +0800 [thread overview]
Message-ID: <94c09cca56e615ae216c75fc12582135d567d270.1793204511.git.wen.yang@linux.dev> (raw)
In-Reply-To: <cover.1793204511.git.wen.yang@linux.dev>
From: Wen Yang <wen.yang@linux.dev>
Replace remaining network bound pointers with numeric limits.
Suggested-by: Joel Granados <joel.granados@kernel.org>
Signed-off-by: Wen Yang <wen.yang@linux.dev>
---
net/mptcp/ctrl.c | 32 ++++++++++++-------------
net/rds/ib_sysctl.c | 24 ++++++++-----------
net/rxrpc/sysctl.c | 51 ++++++++++++++++------------------------
net/smc/smc_sysctl.c | 42 +++++++++++++--------------------
net/tipc/sysctl.c | 17 ++++++++------
net/vmw_vsock/af_vsock.c | 4 ++--
net/x25/sysctl_net_x25.c | 23 ++++++++----------
7 files changed, 84 insertions(+), 109 deletions(-)
diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c
index e5a5995c5753..eb826a9b75da 100644
--- a/net/mptcp/ctrl.c
+++ b/net/mptcp/ctrl.c
@@ -20,7 +20,6 @@
static int mptcp_pernet_id;
#ifdef CONFIG_SYSCTL
-static int mptcp_pm_type_max = __MPTCP_PM_TYPE_MAX;
#endif
struct mptcp_pernet {
@@ -288,8 +287,8 @@ static struct ctl_table mptcp_sysctl_table[] = {
* value, same as other sysctl or the 'net' tree.
*/
.proc_handler = proc_dou8vec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE
+ .min = 0,
+ .max = 1
},
{
.procname = "add_addr_timeout",
@@ -302,32 +301,32 @@ static struct ctl_table mptcp_sysctl_table[] = {
.maxlen = sizeof(u8),
.mode = 0644,
.proc_handler = proc_dou8vec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE
+ .min = 0,
+ .max = 1
},
{
.procname = "allow_join_initial_addr_port",
.maxlen = sizeof(u8),
.mode = 0644,
.proc_handler = proc_dou8vec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE
+ .min = 0,
+ .max = 1
},
{
.procname = "stale_loss_cnt",
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_douintvec_minmax,
- .min = 0,
- .max = UINT_MAX,
+ .min = 0,
+ .max = UINT_MAX,
},
{
.procname = "pm_type",
.maxlen = sizeof(u8),
.mode = 0644,
.proc_handler = proc_pm_type,
- .extra1 = SYSCTL_ZERO,
- .extra2 = &mptcp_pm_type_max
+ .min = 0,
+ .max = __MPTCP_PM_TYPE_MAX
},
{
.procname = "scheduler",
@@ -352,15 +351,16 @@ static struct ctl_table mptcp_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_blackhole_detect_timeout,
- .extra1 = SYSCTL_ZERO,
+ .min = 0,
+ .max = INT_MAX,
},
{
.procname = "syn_retrans_before_tcp_fallback",
.maxlen = sizeof(u8),
.mode = 0644,
.proc_handler = proc_dou8vec_minmax,
- .min = 0,
- .max = U8_MAX,
+ .min = 0,
+ .max = U8_MAX,
},
{
.procname = "path_manager",
@@ -379,8 +379,8 @@ static struct ctl_table mptcp_sysctl_table[] = {
.maxlen = sizeof(u8),
.mode = 0644,
.proc_handler = proc_dou8vec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE
+ .min = 0,
+ .max = 1
},
};
diff --git a/net/rds/ib_sysctl.c b/net/rds/ib_sysctl.c
index b7757f31001c..3b81e686123a 100644
--- a/net/rds/ib_sysctl.c
+++ b/net/rds/ib_sysctl.c
@@ -42,13 +42,7 @@ static struct ctl_table_header *rds_ib_sysctl_hdr;
unsigned long rds_ib_sysctl_max_send_wr = RDS_IB_DEFAULT_SEND_WR;
unsigned long rds_ib_sysctl_max_recv_wr = RDS_IB_DEFAULT_RECV_WR;
unsigned long rds_ib_sysctl_max_recv_allocation = (128 * 1024 * 1024) / RDS_FRAG_SIZE;
-static unsigned long rds_ib_sysctl_max_wr_min = 1;
-/* hardware will fail CQ creation long before this */
-static unsigned long rds_ib_sysctl_max_wr_max = (u32)~0;
-
unsigned long rds_ib_sysctl_max_unsig_wrs = 16;
-static unsigned long rds_ib_sysctl_max_unsig_wr_min = 1;
-static unsigned long rds_ib_sysctl_max_unsig_wr_max = 64;
/*
* This sysctl does nothing.
@@ -69,8 +63,9 @@ static struct ctl_table rds_ib_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = &rds_ib_sysctl_max_wr_min,
- .extra2 = &rds_ib_sysctl_max_wr_max,
+ .min = 1,
+ /* Hardware will fail CQ creation long before this. */
+ .max = (u32)~0,
},
{
.procname = "max_recv_wr",
@@ -78,8 +73,9 @@ static struct ctl_table rds_ib_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = &rds_ib_sysctl_max_wr_min,
- .extra2 = &rds_ib_sysctl_max_wr_max,
+ .min = 1,
+ /* Hardware will fail CQ creation long before this. */
+ .max = (u32)~0,
},
{
.procname = "max_unsignaled_wr",
@@ -87,8 +83,8 @@ static struct ctl_table rds_ib_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = &rds_ib_sysctl_max_unsig_wr_min,
- .extra2 = &rds_ib_sysctl_max_unsig_wr_max,
+ .min = 1,
+ .max = 64,
},
{
.procname = "max_recv_allocation",
@@ -96,8 +92,8 @@ static struct ctl_table rds_ib_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .min = 0,
- .max = ULONG_MAX,
+ .min = 0,
+ .max = ULONG_MAX,
},
{
.procname = "flow_control",
diff --git a/net/rxrpc/sysctl.c b/net/rxrpc/sysctl.c
index 46a20cf4c402..ceac11eb1d97 100644
--- a/net/rxrpc/sysctl.c
+++ b/net/rxrpc/sysctl.c
@@ -11,18 +11,7 @@
#include "ar-internal.h"
static struct ctl_table_header *rxrpc_sysctl_reg_table;
-static const unsigned int rxrpc_rx_mtu_min = 500;
-static const unsigned int rxrpc_jumbo_max = RXRPC_MAX_NR_JUMBO;
-static const unsigned int four = 4;
-static const unsigned int max_backlog = RXRPC_BACKLOG_MAX - 1;
-static const unsigned int n_65535 = 65535;
-static const unsigned int n_max_acks = 255;
-static const unsigned long one_ms = 1;
-static const unsigned long max_ms = 1000;
-static const unsigned long one_jiffy = 1;
-static const unsigned long max_jiffies = MAX_JIFFY_OFFSET;
#ifdef CONFIG_AF_RXRPC_INJECT_RX_DELAY
-static const unsigned long max_500 = 500;
#endif
/*
@@ -39,8 +28,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = (void *)&one_ms,
- .extra2 = (void *)&max_ms,
+ .min = 1,
+ .max = 1000,
},
{
.procname = "idle_ack_delay",
@@ -48,8 +37,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = (void *)&one_ms,
- .extra2 = (void *)&max_ms,
+ .min = 1,
+ .max = 1000,
},
{
.procname = "idle_conn_expiry",
@@ -57,8 +46,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_ms_jiffies_minmax,
- .extra1 = (void *)&one_jiffy,
- .extra2 = (void *)&max_jiffies,
+ .min = 1,
+ .max = MAX_JIFFY_OFFSET,
},
{
.procname = "idle_conn_fast_expiry",
@@ -66,8 +55,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_ms_jiffies_minmax,
- .extra1 = (void *)&one_jiffy,
- .extra2 = (void *)&max_jiffies,
+ .min = 1,
+ .max = MAX_JIFFY_OFFSET,
},
/* Values used in milliseconds */
@@ -78,8 +67,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned long),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .extra1 = (void *)SYSCTL_LONG_ZERO,
- .extra2 = (void *)&max_500,
+ .min = 0,
+ .max = 500,
},
#endif
@@ -90,8 +79,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = (void *)SYSCTL_ONE,
- .extra2 = (void *)&n_65535,
+ .min = 1,
+ .max = 65535,
},
{
.procname = "max_backlog",
@@ -99,8 +88,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = (void *)&four,
- .extra2 = (void *)&max_backlog,
+ .min = 4,
+ .max = RXRPC_BACKLOG_MAX - 1,
},
{
.procname = "rx_window_size",
@@ -108,8 +97,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = (void *)SYSCTL_ONE,
- .extra2 = (void *)&n_max_acks,
+ .min = 1,
+ .max = 255,
},
{
.procname = "rx_mtu",
@@ -117,8 +106,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = (void *)&rxrpc_rx_mtu_min,
- .extra2 = (void *)&n_65535,
+ .min = 500,
+ .max = 65535,
},
{
.procname = "rx_jumbo_max",
@@ -126,8 +115,8 @@ static struct ctl_table rxrpc_sysctl_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = (void *)SYSCTL_ONE,
- .extra2 = (void *)&rxrpc_jumbo_max,
+ .min = 1,
+ .max = RXRPC_MAX_NR_JUMBO,
},
};
diff --git a/net/smc/smc_sysctl.c b/net/smc/smc_sysctl.c
index 09dad48337f6..2baa974496c4 100644
--- a/net/smc/smc_sysctl.c
+++ b/net/smc/smc_sysctl.c
@@ -21,18 +21,8 @@
#include "smc_sysctl.h"
#include "smc_hs_bpf.h"
-static int min_sndbuf = SMC_BUF_MIN_SIZE;
-static int min_rcvbuf = SMC_BUF_MIN_SIZE;
-static int max_sndbuf = INT_MAX / 2;
-static int max_rcvbuf = INT_MAX / 2;
static const int net_smc_wmem_init = (64 * 1024);
static const int net_smc_rmem_init = (64 * 1024);
-static int links_per_lgr_min = SMC_LINKS_ADD_LNK_MIN;
-static int links_per_lgr_max = SMC_LINKS_ADD_LNK_MAX;
-static int conns_per_lgr_min = SMC_CONN_PER_LGR_MIN;
-static int conns_per_lgr_max = SMC_CONN_PER_LGR_MAX;
-static unsigned int smcr_max_wr_min = 2;
-static unsigned int smcr_max_wr_max = 2048;
#if IS_ENABLED(CONFIG_SMC_HS_CTRL_BPF)
static int smc_net_replace_smc_hs_ctrl(struct net *net, const char *name)
@@ -111,8 +101,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = proc_douintvec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_TWO,
+ .min = 0,
+ .max = 2,
},
{
.procname = "smcr_testlink_time",
@@ -127,8 +117,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_sndbuf,
- .extra2 = &max_sndbuf,
+ .min = SMC_BUF_MIN_SIZE,
+ .max = INT_MAX / 2,
},
{
.procname = "rmem",
@@ -136,8 +126,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_rcvbuf,
- .extra2 = &max_rcvbuf,
+ .min = SMC_BUF_MIN_SIZE,
+ .max = INT_MAX / 2,
},
{
.procname = "smcr_max_links_per_lgr",
@@ -145,8 +135,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &links_per_lgr_min,
- .extra2 = &links_per_lgr_max,
+ .min = SMC_LINKS_ADD_LNK_MIN,
+ .max = SMC_LINKS_ADD_LNK_MAX,
},
{
.procname = "smcr_max_conns_per_lgr",
@@ -154,8 +144,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &conns_per_lgr_min,
- .extra2 = &conns_per_lgr_max,
+ .min = SMC_CONN_PER_LGR_MIN,
+ .max = SMC_CONN_PER_LGR_MAX,
},
{
.procname = "limit_smc_hs",
@@ -163,8 +153,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE,
+ .min = 0,
+ .max = 1,
},
{
.procname = "smcr_max_send_wr",
@@ -172,8 +162,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &smcr_max_wr_min,
- .extra2 = &smcr_max_wr_max,
+ .min = 2,
+ .max = 2048,
},
{
.procname = "smcr_max_recv_wr",
@@ -181,8 +171,8 @@ static const struct ctl_table smc_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &smcr_max_wr_min,
- .extra2 = &smcr_max_wr_max,
+ .min = 2,
+ .max = 2048,
},
#if IS_ENABLED(CONFIG_SMC_HS_CTRL_BPF)
{
diff --git a/net/tipc/sysctl.c b/net/tipc/sysctl.c
index 8352c790c8fe..446fb7d188bb 100644
--- a/net/tipc/sysctl.c
+++ b/net/tipc/sysctl.c
@@ -49,7 +49,8 @@ static struct ctl_table tipc_table[] = {
.maxlen = sizeof(sysctl_tipc_rmem),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ONE,
+ .min = 1,
+ .max = INT_MAX,
},
{
.procname = "named_timeout",
@@ -57,7 +58,8 @@ static struct ctl_table tipc_table[] = {
.maxlen = sizeof(sysctl_tipc_named_timeout),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ZERO,
+ .min = 0,
+ .max = INT_MAX,
},
{
.procname = "sk_filter",
@@ -65,8 +67,8 @@ static struct ctl_table tipc_table[] = {
.maxlen = sizeof(sysctl_tipc_sk_filter),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
- .min = 0,
- .max = ULONG_MAX,
+ .min = 0,
+ .max = ULONG_MAX,
},
#ifdef CONFIG_TIPC_CRYPTO
{
@@ -75,7 +77,8 @@ static struct ctl_table tipc_table[] = {
.maxlen = sizeof(sysctl_tipc_max_tfms),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ONE,
+ .min = 1,
+ .max = INT_MAX,
},
{
.procname = "key_exchange_enabled",
@@ -83,8 +86,8 @@ static struct ctl_table tipc_table[] = {
.maxlen = sizeof(sysctl_tipc_key_exchange_enabled),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE,
+ .min = 0,
+ .max = 1,
},
#endif
{
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index d0508887a2fb..f7c90c82c490 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -3038,8 +3038,8 @@ static const struct ctl_table vsock_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE,
+ .min = 0,
+ .max = 1,
},
};
diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
index 643f50874dfe..e5399a66d8d7 100644
--- a/net/x25/sysctl_net_x25.c
+++ b/net/x25/sysctl_net_x25.c
@@ -13,9 +13,6 @@
#include <linux/init.h>
#include <net/x25.h>
-static int min_timer[] = { 1 * HZ };
-static int max_timer[] = { 300 * HZ };
-
static struct ctl_table_header *x25_table_header;
static struct ctl_table x25_table[] = {
@@ -25,8 +22,8 @@ static struct ctl_table x25_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_timer,
- .extra2 = &max_timer,
+ .min = HZ,
+ .max = 300 * HZ,
},
{
.procname = "call_request_timeout",
@@ -34,8 +31,8 @@ static struct ctl_table x25_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_timer,
- .extra2 = &max_timer,
+ .min = HZ,
+ .max = 300 * HZ,
},
{
.procname = "reset_request_timeout",
@@ -43,8 +40,8 @@ static struct ctl_table x25_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_timer,
- .extra2 = &max_timer,
+ .min = HZ,
+ .max = 300 * HZ,
},
{
.procname = "clear_request_timeout",
@@ -52,8 +49,8 @@ static struct ctl_table x25_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_timer,
- .extra2 = &max_timer,
+ .min = HZ,
+ .max = 300 * HZ,
},
{
.procname = "acknowledgement_hold_back_timeout",
@@ -61,8 +58,8 @@ static struct ctl_table x25_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
- .extra1 = &min_timer,
- .extra2 = &max_timer,
+ .min = HZ,
+ .max = 300 * HZ,
},
{
.procname = "x25_forward",
--
2.25.1
next prev parent reply other threads:[~2026-10-28 16:37 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 16:34 [RFC PATCH 00/39] sysctl: replace overloaded extra pointers with typed bounds and context wen.yang
2026-10-28 16:34 ` [RFC PATCH 01/39] " wen.yang
2026-10-28 21:09 ` David Laight
2026-10-28 16:34 ` [RFC PATCH 02/39] test_sysctl: convert bounds to numeric values wen.yang
2026-10-28 16:34 ` [RFC PATCH 03/39] sysctl: add KUnit coverage for numeric bounds and handlers wen.yang
2026-10-28 16:34 ` [RFC PATCH 04/39] sysctl: cover runtime ranges and context lifecycles in KUnit wen.yang
2026-10-28 16:34 ` [RFC PATCH 05/39] sysctl: cover priv in KUnit and the debug test module wen.yang
2026-10-28 16:34 ` [RFC PATCH 06/39] sysctl: convert core table bounds to numeric values wen.yang
2026-10-28 16:34 ` [RFC PATCH 07/39] sysctl: store architecture sysctl bounds by value wen.yang
2026-10-28 16:34 ` [RFC PATCH 08/39] sysctl: store crypto " wen.yang
2026-10-28 16:34 ` [RFC PATCH 09/39] sysctl: store device " wen.yang
2026-10-28 16:34 ` [RFC PATCH 10/39] sysctl: store filesystem " wen.yang
2026-10-28 16:34 ` [RFC PATCH 11/39] sysctl: store message-queue " wen.yang
2026-10-28 16:34 ` [RFC PATCH 12/39] sysctl: store kernel " wen.yang
2026-10-28 16:34 ` [RFC PATCH 13/39] sysctl: store memory-management " wen.yang
2026-10-28 16:34 ` [RFC PATCH 14/39] sysctl: store IPv6 scalar " wen.yang
2026-10-28 16:34 ` [RFC PATCH 15/39] sysctl: store netfilter " wen.yang
2026-10-28 16:34 ` [RFC PATCH 16/39] sysctl: store RPC " wen.yang
2026-10-28 16:34 ` wen.yang [this message]
2026-10-28 16:34 ` [RFC PATCH 18/39] sysctl: store security " wen.yang
2026-10-28 16:34 ` [RFC PATCH 19/39] io_uring: store its " wen.yang
2026-10-28 16:34 ` [RFC PATCH 20/39] sysctl: refresh dynamic scheduler and PID bounds per call wen.yang
2026-10-28 16:35 ` [RFC PATCH 21/39] sysctl: refresh device-dependent " wen.yang
2026-10-28 16:35 ` [RFC PATCH 22/39] sysctl: refresh namespace IPC " wen.yang
2026-10-28 16:35 ` [RFC PATCH 23/39] yama: preserve scope locking with numeric sysctl bounds wen.yang
2026-10-28 16:35 ` [RFC PATCH 24/39] net: refresh core sysctl limits without bound pointers wen.yang
2026-10-28 16:35 ` [RFC PATCH 25/39] sctp: resolve numeric ranges from the current namespace wen.yang
2026-10-28 16:35 ` [RFC PATCH 26/39] rds: preserve live reconnect limits with numeric bounds wen.yang
2026-10-28 16:35 ` [RFC PATCH 27/39] ipv4: preserve live and vector bounds with numeric sysctls wen.yang
2026-10-28 16:35 ` [RFC PATCH 28/39] net: refresh fragment and remaining dynamic sysctl bounds wen.yang
2026-10-28 16:35 ` [RFC PATCH 29/39] neighbour: derive sysctl ownership independently of bounds wen.yang
2026-10-28 16:35 ` [RFC PATCH 30/39] net: resolve sysctl owners from their backing data wen.yang
2026-10-28 16:35 ` [RFC PATCH 31/39] ipvs: derive sysctl ownership from numeric storage wen.yang
2026-10-28 16:35 ` [RFC PATCH 32/39] sysctl: remove obsolete nr_open bound variables wen.yang
2026-10-28 16:35 ` [RFC PATCH 33/39] ipv6: move address sysctl context to priv wen.yang
2026-10-28 16:35 ` [RFC PATCH 34/39] ipv4: move device " wen.yang
2026-10-28 16:35 ` [RFC PATCH 35/39] netfilter: move logger " wen.yang
2026-10-28 16:35 ` [RFC PATCH 36/39] parport: move device " wen.yang
2026-10-28 16:35 ` [RFC PATCH 37/39] net: move namespace " wen.yang
2026-10-28 16:35 ` [RFC PATCH 38/39] arm64: move vector-length " wen.yang
2026-10-28 16:35 ` [RFC PATCH 39/39] sysctl: remove the extra pointers and the compatibility bounds read wen.yang
2026-10-29 10:58 ` [RFC PATCH 00/39] sysctl: replace overloaded extra pointers with typed bounds and context David Laight
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=94c09cca56e615ae216c75fc12582135d567d270.1793204511.git.wen.yang@linux.dev \
--to=wen.yang@linux.dev \
--cc=joel.granados@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®