ipv6: convert elligible sysctls to u8
authorEric Dumazet <edumazet@google.com>
Wed, 31 Mar 2021 17:52:12 +0000 (10:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2021 21:48:20 +0000 (14:48 -0700)
Convert most sysctls that can fit in a byte.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netns/ipv6.h
net/ipv6/icmp.c
net/ipv6/sysctl_net_ipv6.c

index 21c0deb..84f4a8b 100644 (file)
@@ -20,7 +20,6 @@ struct netns_sysctl_ipv6 {
        struct ctl_table_header *frags_hdr;
        struct ctl_table_header *xfrm6_hdr;
 #endif
-       int bindv6only;
        int flush_delay;
        int ip6_rt_max_size;
        int ip6_rt_gc_min_interval;
@@ -29,21 +28,22 @@ struct netns_sysctl_ipv6 {
        int ip6_rt_gc_elasticity;
        int ip6_rt_mtu_expires;
        int ip6_rt_min_advmss;
-       int multipath_hash_policy;
-       int flowlabel_consistency;
-       int auto_flowlabels;
+       u8 bindv6only;
+       u8 multipath_hash_policy;
+       u8 flowlabel_consistency;
+       u8 auto_flowlabels;
        int icmpv6_time;
-       int icmpv6_echo_ignore_all;
-       int icmpv6_echo_ignore_multicast;
-       int icmpv6_echo_ignore_anycast;
+       u8 icmpv6_echo_ignore_all;
+       u8 icmpv6_echo_ignore_multicast;
+       u8 icmpv6_echo_ignore_anycast;
        DECLARE_BITMAP(icmpv6_ratemask, ICMPV6_MSG_MAX + 1);
        unsigned long *icmpv6_ratemask_ptr;
-       int anycast_src_echo_reply;
-       int ip_nonlocal_bind;
-       int fwmark_reflect;
+       u8 anycast_src_echo_reply;
+       u8 ip_nonlocal_bind;
+       u8 fwmark_reflect;
+       u8 flowlabel_state_ranges;
        int idgen_retries;
        int idgen_delay;
-       int flowlabel_state_ranges;
        int flowlabel_reflect;
        int max_dst_opts_cnt;
        int max_hbh_opts_cnt;
@@ -51,7 +51,7 @@ struct netns_sysctl_ipv6 {
        int max_hbh_opts_len;
        int seg6_flowlabel;
        bool skip_notify_on_dev_down;
-       int fib_notify_on_flag_change;
+       u8 fib_notify_on_flag_change;
 };
 
 struct netns_ipv6 {
index 29d38d6..1bca2b0 100644 (file)
@@ -1169,23 +1169,23 @@ static struct ctl_table ipv6_icmp_table_template[] = {
        {
                .procname       = "echo_ignore_all",
                .data           = &init_net.ipv6.sysctl.icmpv6_echo_ignore_all,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler = proc_dointvec,
+               .proc_handler = proc_dou8vec_minmax,
        },
        {
                .procname       = "echo_ignore_multicast",
                .data           = &init_net.ipv6.sysctl.icmpv6_echo_ignore_multicast,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler = proc_dointvec,
+               .proc_handler = proc_dou8vec_minmax,
        },
        {
                .procname       = "echo_ignore_anycast",
                .data           = &init_net.ipv6.sysctl.icmpv6_echo_ignore_anycast,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler = proc_dointvec,
+               .proc_handler = proc_dou8vec_minmax,
        },
        {
                .procname       = "ratemask",
index 263ab43..27102c3 100644 (file)
@@ -23,7 +23,6 @@
 
 static int two = 2;
 static int flowlabel_reflect_max = 0x7;
-static int auto_flowlabels_min;
 static int auto_flowlabels_max = IP6_AUTO_FLOW_LABEL_MAX;
 
 static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write,
@@ -34,7 +33,7 @@ static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write,
 
        net = container_of(table->data, struct net,
                           ipv6.sysctl.multipath_hash_policy);
-       ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
+       ret = proc_dou8vec_minmax(table, write, buffer, lenp, ppos);
        if (write && ret == 0)
                call_netevent_notifiers(NETEVENT_IPV6_MPATH_HASH_UPDATE, net);
 
@@ -45,39 +44,38 @@ static struct ctl_table ipv6_table_template[] = {
        {
                .procname       = "bindv6only",
                .data           = &init_net.ipv6.sysctl.bindv6only,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "anycast_src_echo_reply",
                .data           = &init_net.ipv6.sysctl.anycast_src_echo_reply,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "flowlabel_consistency",
                .data           = &init_net.ipv6.sysctl.flowlabel_consistency,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "auto_flowlabels",
                .data           = &init_net.ipv6.sysctl.auto_flowlabels,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = &auto_flowlabels_min,
+               .proc_handler   = proc_dou8vec_minmax,
                .extra2         = &auto_flowlabels_max
        },
        {
                .procname       = "fwmark_reflect",
                .data           = &init_net.ipv6.sysctl.fwmark_reflect,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "idgen_retries",
@@ -96,16 +94,16 @@ static struct ctl_table ipv6_table_template[] = {
        {
                .procname       = "flowlabel_state_ranges",
                .data           = &init_net.ipv6.sysctl.flowlabel_state_ranges,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "ip_nonlocal_bind",
                .data           = &init_net.ipv6.sysctl.ip_nonlocal_bind,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec
+               .proc_handler   = proc_dou8vec_minmax,
        },
        {
                .procname       = "flowlabel_reflect",
@@ -147,7 +145,7 @@ static struct ctl_table ipv6_table_template[] = {
        {
                .procname       = "fib_multipath_hash_policy",
                .data           = &init_net.ipv6.sysctl.multipath_hash_policy,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
                .proc_handler   = proc_rt6_multipath_hash_policy,
                .extra1         = SYSCTL_ZERO,
@@ -163,9 +161,9 @@ static struct ctl_table ipv6_table_template[] = {
        {
                .procname       = "fib_notify_on_flag_change",
                .data           = &init_net.ipv6.sysctl.fib_notify_on_flag_change,
-               .maxlen         = sizeof(int),
+               .maxlen         = sizeof(u8),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
+               .proc_handler   = proc_dou8vec_minmax,
                .extra1         = SYSCTL_ZERO,
                .extra2         = &two,
        },