diff options
Diffstat (limited to 'net/core/neighbour.c')
| -rw-r--r-- | net/core/neighbour.c | 49 | 
1 files changed, 7 insertions, 42 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index e587e681969..f35377b643e 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -2092,7 +2092,7 @@ static int neigh_dump_table(struct neigh_table *tbl, struct sk_buff *skb,  		if (h > s_h)  			s_idx = 0;  		for (n = tbl->hash_buckets[h], idx = 0; n; n = n->next) { -			if (dev_net(n->dev) != net) +			if (!net_eq(dev_net(n->dev), net))  				continue;  			if (idx < s_idx)  				goto next; @@ -2566,21 +2566,18 @@ static struct neigh_sysctl_table {  } neigh_sysctl_template __read_mostly = {  	.neigh_vars = {  		{ -			.ctl_name	= NET_NEIGH_MCAST_SOLICIT,  			.procname	= "mcast_solicit",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec,  		},  		{ -			.ctl_name	= NET_NEIGH_UCAST_SOLICIT,  			.procname	= "ucast_solicit",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec,  		},  		{ -			.ctl_name	= NET_NEIGH_APP_SOLICIT,  			.procname	= "app_solicit",  			.maxlen		= sizeof(int),  			.mode		= 0644, @@ -2593,38 +2590,30 @@ static struct neigh_sysctl_table {  			.proc_handler	= proc_dointvec_userhz_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_REACHABLE_TIME,  			.procname	= "base_reachable_time",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_jiffies, -			.strategy	= sysctl_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_DELAY_PROBE_TIME,  			.procname	= "delay_first_probe_time",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_jiffies, -			.strategy	= sysctl_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_GC_STALE_TIME,  			.procname	= "gc_stale_time",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_jiffies, -			.strategy	= sysctl_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_UNRES_QLEN,  			.procname	= "unres_qlen",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec,  		},  		{ -			.ctl_name	= NET_NEIGH_PROXY_QLEN,  			.procname	= "proxy_qlen",  			.maxlen		= sizeof(int),  			.mode		= 0644, @@ -2649,45 +2638,36 @@ static struct neigh_sysctl_table {  			.proc_handler	= proc_dointvec_userhz_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_RETRANS_TIME_MS,  			.procname	= "retrans_time_ms",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_ms_jiffies, -			.strategy	= sysctl_ms_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_REACHABLE_TIME_MS,  			.procname	= "base_reachable_time_ms",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_ms_jiffies, -			.strategy	= sysctl_ms_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_GC_INTERVAL,  			.procname	= "gc_interval",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec_jiffies, -			.strategy	= sysctl_jiffies,  		},  		{ -			.ctl_name	= NET_NEIGH_GC_THRESH1,  			.procname	= "gc_thresh1",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec,  		},  		{ -			.ctl_name	= NET_NEIGH_GC_THRESH2,  			.procname	= "gc_thresh2",  			.maxlen		= sizeof(int),  			.mode		= 0644,  			.proc_handler	= proc_dointvec,  		},  		{ -			.ctl_name	= NET_NEIGH_GC_THRESH3,  			.procname	= "gc_thresh3",  			.maxlen		= sizeof(int),  			.mode		= 0644, @@ -2699,7 +2679,7 @@ static struct neigh_sysctl_table {  int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,  			  int p_id, int pdev_id, char *p_name, -			  proc_handler *handler, ctl_handler *strategy) +			  proc_handler *handler)  {  	struct neigh_sysctl_table *t;  	const char *dev_name_source = NULL; @@ -2710,10 +2690,10 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,  #define NEIGH_CTL_PATH_DEV	3  	struct ctl_path neigh_path[] = { -		{ .procname = "net",	 .ctl_name = CTL_NET, }, -		{ .procname = "proto",	 .ctl_name = 0, }, -		{ .procname = "neigh",	 .ctl_name = 0, }, -		{ .procname = "default", .ctl_name = NET_PROTO_CONF_DEFAULT, }, +		{ .procname = "net",	 }, +		{ .procname = "proto",	 }, +		{ .procname = "neigh",	 }, +		{ .procname = "default", },  		{ },  	}; @@ -2738,7 +2718,6 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,  	if (dev) {  		dev_name_source = dev->name; -		neigh_path[NEIGH_CTL_PATH_DEV].ctl_name = dev->ifindex;  		/* Terminate the table early */  		memset(&t->neigh_vars[14], 0, sizeof(t->neigh_vars[14]));  	} else { @@ -2750,31 +2729,19 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,  	} -	if (handler || strategy) { +	if (handler) {  		/* RetransTime */  		t->neigh_vars[3].proc_handler = handler; -		t->neigh_vars[3].strategy = strategy;  		t->neigh_vars[3].extra1 = dev; -		if (!strategy) -			t->neigh_vars[3].ctl_name = CTL_UNNUMBERED;  		/* ReachableTime */  		t->neigh_vars[4].proc_handler = handler; -		t->neigh_vars[4].strategy = strategy;  		t->neigh_vars[4].extra1 = dev; -		if (!strategy) -			t->neigh_vars[4].ctl_name = CTL_UNNUMBERED;  		/* RetransTime (in milliseconds)*/  		t->neigh_vars[12].proc_handler = handler; -		t->neigh_vars[12].strategy = strategy;  		t->neigh_vars[12].extra1 = dev; -		if (!strategy) -			t->neigh_vars[12].ctl_name = CTL_UNNUMBERED;  		/* ReachableTime (in milliseconds) */  		t->neigh_vars[13].proc_handler = handler; -		t->neigh_vars[13].strategy = strategy;  		t->neigh_vars[13].extra1 = dev; -		if (!strategy) -			t->neigh_vars[13].ctl_name = CTL_UNNUMBERED;  	}  	t->dev_name = kstrdup(dev_name_source, GFP_KERNEL); @@ -2782,9 +2749,7 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,  		goto free;  	neigh_path[NEIGH_CTL_PATH_DEV].procname = t->dev_name; -	neigh_path[NEIGH_CTL_PATH_NEIGH].ctl_name = pdev_id;  	neigh_path[NEIGH_CTL_PATH_PROTO].procname = p_name; -	neigh_path[NEIGH_CTL_PATH_PROTO].ctl_name = p_id;  	t->sysctl_header =  		register_net_sysctl_table(neigh_parms_net(p), neigh_path, t->neigh_vars);  |