public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public•gmane.org (Eric W. Biederman)
To: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public•gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
	Linux Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public•gmane.org>,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public•gmane.org
Subject: [PATCH 5/6] ipv4: Use math to point per net sysctls into the appropriate struct net.
Date: Sat, 19 Oct 2013 16:27:03 -0700	[thread overview]
Message-ID: <87vc0sg7ug.fsf@xmission.com> (raw)
In-Reply-To: <87r4bghml4.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> (Eric W. Biederman's message of "Sat, 19 Oct 2013 16:23:19 -0700")


Simplify maintenance of ipv4_net_table by using math to point the per
net sysctls into the appropriate struct net, instead of manually
reassinging all of the variables into hard coded table slots.

Signed-off-by: "Eric W. Biederman" <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public•gmane.org>
---
 net/ipv4/sysctl_net_ipv4.c |   23 +++++------------------
 1 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index 635dd4d5edcf..5a17eb605f77 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -833,28 +833,15 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
 
 	table = ipv4_net_table;
 	if (!net_eq(net, &init_net)) {
+		int i;
+
 		table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
 		if (table == NULL)
 			goto err_alloc;
 
-		table[0].data =
-			&net->ipv4.sysctl_icmp_echo_ignore_all;
-		table[1].data =
-			&net->ipv4.sysctl_icmp_echo_ignore_broadcasts;
-		table[2].data =
-			&net->ipv4.sysctl_icmp_ignore_bogus_error_responses;
-		table[3].data =
-			&net->ipv4.sysctl_icmp_errors_use_inbound_ifaddr;
-		table[4].data =
-			&net->ipv4.sysctl_icmp_ratelimit;
-		table[5].data =
-			&net->ipv4.sysctl_icmp_ratemask;
-		table[6].data =
-			&net->ipv4.sysctl_ping_group_range;
-		table[7].data =
-			&net->ipv4.sysctl_tcp_ecn;
-		table[8].data =
-			&net->ipv4.sysctl_local_ports.range;
+		/* Update the variables to point into the current struct net */
+		for (i = 0; i < ARRAY_SIZE(ipv4_net_table) - 1; i++)
+			table[i].data += (void *)net - (void *)&init_net;
 
 		/* Don't export sysctls to unprivileged users */
 		if (net->user_ns != &init_user_ns)
-- 
1.7.5.4

  parent reply	other threads:[~2013-10-19 23:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-19 23:23 [PATCH 0/6] ipv4: tcp_memcontrol and userns sysctls Eric W. Biederman
     [not found] ` <87r4bghml4.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2013-10-19 23:24   ` [PATCH 1/6] tcp_memcontrol: Remove tcp_max_memory Eric W. Biederman
2013-10-19 23:24   ` [PATCH 2/6] tcp_memcontrol: Remove setting cgroup settings via sysctl Eric W. Biederman
2013-10-19 23:25   ` [PATCH 3/6] tcp_memcontrol: Remove the per netns control Eric W. Biederman
2013-10-19 23:26   ` [PATCH 4/6] tcp_memcontrol: Kill struct tcp_memcontrol Eric W. Biederman
2013-10-19 23:27   ` Eric W. Biederman [this message]
2013-10-19 23:27   ` [PATCH 6/6] ipv4: Allow unprivileged users to use per net sysctls Eric W. Biederman
2013-10-21 22:44   ` [PATCH 0/6] ipv4: tcp_memcontrol and userns sysctls David Miller

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=87vc0sg7ug.fsf@xmission.com \
    --to=ebiederm-as9lmozglivwk0htik3j/w@public$(echo .)gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public$(echo .)gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public$(echo .)gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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