2019-05-24 14:32:09

by Kefeng Wang

[permalink] [raw]
Subject: [PATCH] kernel: sysctl: change ipfrag_high/low_thresh to CTL_ULONG

3e67f106f619 ("inet: frags: break the 2GB limit for frags storage"),
changes ipfrag_high/low_thread 'type' from int to long, using CTL_ULONG
instead of CTL_INT to keep consistent.

Cc: Andrew Morton <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Eric Dumazet <[email protected]>
Signed-off-by: Kefeng Wang <[email protected]>
---
kernel/sysctl_binary.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
index 73c132095a7b..ef0687f40f87 100644
--- a/kernel/sysctl_binary.c
+++ b/kernel/sysctl_binary.c
@@ -410,8 +410,8 @@ static const struct bin_table bin_net_ipv4_table[] = {
{ CTL_INT, NET_IPV4_ICMP_RATELIMIT, "icmp_ratelimit" },
{ CTL_INT, NET_IPV4_ICMP_RATEMASK, "icmp_ratemask" },

- { CTL_INT, NET_IPV4_IPFRAG_HIGH_THRESH, "ipfrag_high_thresh" },
- { CTL_INT, NET_IPV4_IPFRAG_LOW_THRESH, "ipfrag_low_thresh" },
+ { CTL_ULONG, NET_IPV4_IPFRAG_HIGH_THRESH, "ipfrag_high_thresh" },
+ { CTL_ULONG, NET_IPV4_IPFRAG_LOW_THRESH, "ipfrag_low_thresh" },
{ CTL_INT, NET_IPV4_IPFRAG_TIME, "ipfrag_time" },

{ CTL_INT, NET_IPV4_IPFRAG_SECRET_INTERVAL, "ipfrag_secret_interval" },
--
2.20.1


2019-05-24 15:02:32

by Eric Dumazet

[permalink] [raw]
Subject: Re: [PATCH] kernel: sysctl: change ipfrag_high/low_thresh to CTL_ULONG

On Fri, May 24, 2019 at 7:30 AM Kefeng Wang <[email protected]> wrote:
>
> 3e67f106f619 ("inet: frags: break the 2GB limit for frags storage"),
> changes ipfrag_high/low_thread 'type' from int to long, using CTL_ULONG
> instead of CTL_INT to keep consistent.


What about compatibility with existing applications ?
Will there sysctl() fail if they provide 32bit variable ?

/proc/sys/net files are text files, but sysctl() system call has been
discouraged for more than a decade.

2019-05-25 09:03:50

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] kernel: sysctl: change ipfrag_high/low_thresh to CTL_ULONG


On 2019/5/24 23:00, Eric Dumazet wrote:
> On Fri, May 24, 2019 at 7:30 AM Kefeng Wang <[email protected]> wrote:
>> 3e67f106f619 ("inet: frags: break the 2GB limit for frags storage"),
>> changes ipfrag_high/low_thread 'type' from int to long, using CTL_ULONG
>> instead of CTL_INT to keep consistent.
>
> What about compatibility with existing applications ?
> Will there sysctl() fail if they provide 32bit variable ?
>
> /proc/sys/net files are text files, but sysctl() system call has been
> discouraged for more than a decade.

The sysctl() system call is deprecated, so the main purpose of this patch is to keep consistent,

but it does set wrong value(eg, set 16000000000 to ipfrag_high_thresh) when use sysctl().


>
>