diff options
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 91 |
1 files changed, 9 insertions, 82 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index b1ce8fc62049..de7a194a64ab 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -4037,41 +4037,6 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write, | |||
4037 | return ret; | 4037 | return ret; |
4038 | } | 4038 | } |
4039 | 4039 | ||
4040 | static int addrconf_sysctl_forward_strategy(ctl_table *table, | ||
4041 | void __user *oldval, | ||
4042 | size_t __user *oldlenp, | ||
4043 | void __user *newval, size_t newlen) | ||
4044 | { | ||
4045 | int *valp = table->data; | ||
4046 | int val = *valp; | ||
4047 | int new; | ||
4048 | |||
4049 | if (!newval || !newlen) | ||
4050 | return 0; | ||
4051 | if (newlen != sizeof(int)) | ||
4052 | return -EINVAL; | ||
4053 | if (get_user(new, (int __user *)newval)) | ||
4054 | return -EFAULT; | ||
4055 | if (new == *valp) | ||
4056 | return 0; | ||
4057 | if (oldval && oldlenp) { | ||
4058 | size_t len; | ||
4059 | if (get_user(len, oldlenp)) | ||
4060 | return -EFAULT; | ||
4061 | if (len) { | ||
4062 | if (len > table->maxlen) | ||
4063 | len = table->maxlen; | ||
4064 | if (copy_to_user(oldval, valp, len)) | ||
4065 | return -EFAULT; | ||
4066 | if (put_user(len, oldlenp)) | ||
4067 | return -EFAULT; | ||
4068 | } | ||
4069 | } | ||
4070 | |||
4071 | *valp = new; | ||
4072 | return addrconf_fixup_forwarding(table, valp, val); | ||
4073 | } | ||
4074 | |||
4075 | static void dev_disable_change(struct inet6_dev *idev) | 4040 | static void dev_disable_change(struct inet6_dev *idev) |
4076 | { | 4041 | { |
4077 | if (!idev || !idev->dev) | 4042 | if (!idev || !idev->dev) |
@@ -4148,16 +4113,13 @@ static struct addrconf_sysctl_table | |||
4148 | .sysctl_header = NULL, | 4113 | .sysctl_header = NULL, |
4149 | .addrconf_vars = { | 4114 | .addrconf_vars = { |
4150 | { | 4115 | { |
4151 | .ctl_name = NET_IPV6_FORWARDING, | ||
4152 | .procname = "forwarding", | 4116 | .procname = "forwarding", |
4153 | .data = &ipv6_devconf.forwarding, | 4117 | .data = &ipv6_devconf.forwarding, |
4154 | .maxlen = sizeof(int), | 4118 | .maxlen = sizeof(int), |
4155 | .mode = 0644, | 4119 | .mode = 0644, |
4156 | .proc_handler = addrconf_sysctl_forward, | 4120 | .proc_handler = addrconf_sysctl_forward, |
4157 | .strategy = addrconf_sysctl_forward_strategy, | ||
4158 | }, | 4121 | }, |
4159 | { | 4122 | { |
4160 | .ctl_name = NET_IPV6_HOP_LIMIT, | ||
4161 | .procname = "hop_limit", | 4123 | .procname = "hop_limit", |
4162 | .data = &ipv6_devconf.hop_limit, | 4124 | .data = &ipv6_devconf.hop_limit, |
4163 | .maxlen = sizeof(int), | 4125 | .maxlen = sizeof(int), |
@@ -4165,7 +4127,6 @@ static struct addrconf_sysctl_table | |||
4165 | .proc_handler = proc_dointvec, | 4127 | .proc_handler = proc_dointvec, |
4166 | }, | 4128 | }, |
4167 | { | 4129 | { |
4168 | .ctl_name = NET_IPV6_MTU, | ||
4169 | .procname = "mtu", | 4130 | .procname = "mtu", |
4170 | .data = &ipv6_devconf.mtu6, | 4131 | .data = &ipv6_devconf.mtu6, |
4171 | .maxlen = sizeof(int), | 4132 | .maxlen = sizeof(int), |
@@ -4173,7 +4134,6 @@ static struct addrconf_sysctl_table | |||
4173 | .proc_handler = proc_dointvec, | 4134 | .proc_handler = proc_dointvec, |
4174 | }, | 4135 | }, |
4175 | { | 4136 | { |
4176 | .ctl_name = NET_IPV6_ACCEPT_RA, | ||
4177 | .procname = "accept_ra", | 4137 | .procname = "accept_ra", |
4178 | .data = &ipv6_devconf.accept_ra, | 4138 | .data = &ipv6_devconf.accept_ra, |
4179 | .maxlen = sizeof(int), | 4139 | .maxlen = sizeof(int), |
@@ -4181,7 +4141,6 @@ static struct addrconf_sysctl_table | |||
4181 | .proc_handler = proc_dointvec, | 4141 | .proc_handler = proc_dointvec, |
4182 | }, | 4142 | }, |
4183 | { | 4143 | { |
4184 | .ctl_name = NET_IPV6_ACCEPT_REDIRECTS, | ||
4185 | .procname = "accept_redirects", | 4144 | .procname = "accept_redirects", |
4186 | .data = &ipv6_devconf.accept_redirects, | 4145 | .data = &ipv6_devconf.accept_redirects, |
4187 | .maxlen = sizeof(int), | 4146 | .maxlen = sizeof(int), |
@@ -4189,7 +4148,6 @@ static struct addrconf_sysctl_table | |||
4189 | .proc_handler = proc_dointvec, | 4148 | .proc_handler = proc_dointvec, |
4190 | }, | 4149 | }, |
4191 | { | 4150 | { |
4192 | .ctl_name = NET_IPV6_AUTOCONF, | ||
4193 | .procname = "autoconf", | 4151 | .procname = "autoconf", |
4194 | .data = &ipv6_devconf.autoconf, | 4152 | .data = &ipv6_devconf.autoconf, |
4195 | .maxlen = sizeof(int), | 4153 | .maxlen = sizeof(int), |
@@ -4197,7 +4155,6 @@ static struct addrconf_sysctl_table | |||
4197 | .proc_handler = proc_dointvec, | 4155 | .proc_handler = proc_dointvec, |
4198 | }, | 4156 | }, |
4199 | { | 4157 | { |
4200 | .ctl_name = NET_IPV6_DAD_TRANSMITS, | ||
4201 | .procname = "dad_transmits", | 4158 | .procname = "dad_transmits", |
4202 | .data = &ipv6_devconf.dad_transmits, | 4159 | .data = &ipv6_devconf.dad_transmits, |
4203 | .maxlen = sizeof(int), | 4160 | .maxlen = sizeof(int), |
@@ -4205,7 +4162,6 @@ static struct addrconf_sysctl_table | |||
4205 | .proc_handler = proc_dointvec, | 4162 | .proc_handler = proc_dointvec, |
4206 | }, | 4163 | }, |
4207 | { | 4164 | { |
4208 | .ctl_name = NET_IPV6_RTR_SOLICITS, | ||
4209 | .procname = "router_solicitations", | 4165 | .procname = "router_solicitations", |
4210 | .data = &ipv6_devconf.rtr_solicits, | 4166 | .data = &ipv6_devconf.rtr_solicits, |
4211 | .maxlen = sizeof(int), | 4167 | .maxlen = sizeof(int), |
@@ -4213,25 +4169,20 @@ static struct addrconf_sysctl_table | |||
4213 | .proc_handler = proc_dointvec, | 4169 | .proc_handler = proc_dointvec, |
4214 | }, | 4170 | }, |
4215 | { | 4171 | { |
4216 | .ctl_name = NET_IPV6_RTR_SOLICIT_INTERVAL, | ||
4217 | .procname = "router_solicitation_interval", | 4172 | .procname = "router_solicitation_interval", |
4218 | .data = &ipv6_devconf.rtr_solicit_interval, | 4173 | .data = &ipv6_devconf.rtr_solicit_interval, |
4219 | .maxlen = sizeof(int), | 4174 | .maxlen = sizeof(int), |
4220 | .mode = 0644, | 4175 | .mode = 0644, |
4221 | .proc_handler = proc_dointvec_jiffies, | 4176 | .proc_handler = proc_dointvec_jiffies, |
4222 | .strategy = sysctl_jiffies, | ||
4223 | }, | 4177 | }, |
4224 | { | 4178 | { |
4225 | .ctl_name = NET_IPV6_RTR_SOLICIT_DELAY, | ||
4226 | .procname = "router_solicitation_delay", | 4179 | .procname = "router_solicitation_delay", |
4227 | .data = &ipv6_devconf.rtr_solicit_delay, | 4180 | .data = &ipv6_devconf.rtr_solicit_delay, |
4228 | .maxlen = sizeof(int), | 4181 | .maxlen = sizeof(int), |
4229 | .mode = 0644, | 4182 | .mode = 0644, |
4230 | .proc_handler = proc_dointvec_jiffies, | 4183 | .proc_handler = proc_dointvec_jiffies, |
4231 | .strategy = sysctl_jiffies, | ||
4232 | }, | 4184 | }, |
4233 | { | 4185 | { |
4234 | .ctl_name = NET_IPV6_FORCE_MLD_VERSION, | ||
4235 | .procname = "force_mld_version", | 4186 | .procname = "force_mld_version", |
4236 | .data = &ipv6_devconf.force_mld_version, | 4187 | .data = &ipv6_devconf.force_mld_version, |
4237 | .maxlen = sizeof(int), | 4188 | .maxlen = sizeof(int), |
@@ -4240,7 +4191,6 @@ static struct addrconf_sysctl_table | |||
4240 | }, | 4191 | }, |
4241 | #ifdef CONFIG_IPV6_PRIVACY | 4192 | #ifdef CONFIG_IPV6_PRIVACY |
4242 | { | 4193 | { |
4243 | .ctl_name = NET_IPV6_USE_TEMPADDR, | ||
4244 | .procname = "use_tempaddr", | 4194 | .procname = "use_tempaddr", |
4245 | .data = &ipv6_devconf.use_tempaddr, | 4195 | .data = &ipv6_devconf.use_tempaddr, |
4246 | .maxlen = sizeof(int), | 4196 | .maxlen = sizeof(int), |
@@ -4248,7 +4198,6 @@ static struct addrconf_sysctl_table | |||
4248 | .proc_handler = proc_dointvec, | 4198 | .proc_handler = proc_dointvec, |
4249 | }, | 4199 | }, |
4250 | { | 4200 | { |
4251 | .ctl_name = NET_IPV6_TEMP_VALID_LFT, | ||
4252 | .procname = "temp_valid_lft", | 4201 | .procname = "temp_valid_lft", |
4253 | .data = &ipv6_devconf.temp_valid_lft, | 4202 | .data = &ipv6_devconf.temp_valid_lft, |
4254 | .maxlen = sizeof(int), | 4203 | .maxlen = sizeof(int), |
@@ -4256,7 +4205,6 @@ static struct addrconf_sysctl_table | |||
4256 | .proc_handler = proc_dointvec, | 4205 | .proc_handler = proc_dointvec, |
4257 | }, | 4206 | }, |
4258 | { | 4207 | { |
4259 | .ctl_name = NET_IPV6_TEMP_PREFERED_LFT, | ||
4260 | .procname = "temp_prefered_lft", | 4208 | .procname = "temp_prefered_lft", |
4261 | .data = &ipv6_devconf.temp_prefered_lft, | 4209 | .data = &ipv6_devconf.temp_prefered_lft, |
4262 | .maxlen = sizeof(int), | 4210 | .maxlen = sizeof(int), |
@@ -4264,7 +4212,6 @@ static struct addrconf_sysctl_table | |||
4264 | .proc_handler = proc_dointvec, | 4212 | .proc_handler = proc_dointvec, |
4265 | }, | 4213 | }, |
4266 | { | 4214 | { |
4267 | .ctl_name = NET_IPV6_REGEN_MAX_RETRY, | ||
4268 | .procname = "regen_max_retry", | 4215 | .procname = "regen_max_retry", |
4269 | .data = &ipv6_devconf.regen_max_retry, | 4216 | .data = &ipv6_devconf.regen_max_retry, |
4270 | .maxlen = sizeof(int), | 4217 | .maxlen = sizeof(int), |
@@ -4272,7 +4219,6 @@ static struct addrconf_sysctl_table | |||
4272 | .proc_handler = proc_dointvec, | 4219 | .proc_handler = proc_dointvec, |
4273 | }, | 4220 | }, |
4274 | { | 4221 | { |
4275 | .ctl_name = NET_IPV6_MAX_DESYNC_FACTOR, | ||
4276 | .procname = "max_desync_factor", | 4222 | .procname = "max_desync_factor", |
4277 | .data = &ipv6_devconf.max_desync_factor, | 4223 | .data = &ipv6_devconf.max_desync_factor, |
4278 | .maxlen = sizeof(int), | 4224 | .maxlen = sizeof(int), |
@@ -4281,7 +4227,6 @@ static struct addrconf_sysctl_table | |||
4281 | }, | 4227 | }, |
4282 | #endif | 4228 | #endif |
4283 | { | 4229 | { |
4284 | .ctl_name = NET_IPV6_MAX_ADDRESSES, | ||
4285 | .procname = "max_addresses", | 4230 | .procname = "max_addresses", |
4286 | .data = &ipv6_devconf.max_addresses, | 4231 | .data = &ipv6_devconf.max_addresses, |
4287 | .maxlen = sizeof(int), | 4232 | .maxlen = sizeof(int), |
@@ -4289,7 +4234,6 @@ static struct addrconf_sysctl_table | |||
4289 | .proc_handler = proc_dointvec, | 4234 | .proc_handler = proc_dointvec, |
4290 | }, | 4235 | }, |
4291 | { | 4236 | { |
4292 | .ctl_name = NET_IPV6_ACCEPT_RA_DEFRTR, | ||
4293 | .procname = "accept_ra_defrtr", | 4237 | .procname = "accept_ra_defrtr", |
4294 | .data = &ipv6_devconf.accept_ra_defrtr, | 4238 | .data = &ipv6_devconf.accept_ra_defrtr, |
4295 | .maxlen = sizeof(int), | 4239 | .maxlen = sizeof(int), |
@@ -4297,7 +4241,6 @@ static struct addrconf_sysctl_table | |||
4297 | .proc_handler = proc_dointvec, | 4241 | .proc_handler = proc_dointvec, |
4298 | }, | 4242 | }, |
4299 | { | 4243 | { |
4300 | .ctl_name = NET_IPV6_ACCEPT_RA_PINFO, | ||
4301 | .procname = "accept_ra_pinfo", | 4244 | .procname = "accept_ra_pinfo", |
4302 | .data = &ipv6_devconf.accept_ra_pinfo, | 4245 | .data = &ipv6_devconf.accept_ra_pinfo, |
4303 | .maxlen = sizeof(int), | 4246 | .maxlen = sizeof(int), |
@@ -4306,7 +4249,6 @@ static struct addrconf_sysctl_table | |||
4306 | }, | 4249 | }, |
4307 | #ifdef CONFIG_IPV6_ROUTER_PREF | 4250 | #ifdef CONFIG_IPV6_ROUTER_PREF |
4308 | { | 4251 | { |
4309 | .ctl_name = NET_IPV6_ACCEPT_RA_RTR_PREF, | ||
4310 | .procname = "accept_ra_rtr_pref", | 4252 | .procname = "accept_ra_rtr_pref", |
4311 | .data = &ipv6_devconf.accept_ra_rtr_pref, | 4253 | .data = &ipv6_devconf.accept_ra_rtr_pref, |
4312 | .maxlen = sizeof(int), | 4254 | .maxlen = sizeof(int), |
@@ -4314,17 +4256,14 @@ static struct addrconf_sysctl_table | |||
4314 | .proc_handler = proc_dointvec, | 4256 | .proc_handler = proc_dointvec, |
4315 | }, | 4257 | }, |
4316 | { | 4258 | { |
4317 | .ctl_name = NET_IPV6_RTR_PROBE_INTERVAL, | ||
4318 | .procname = "router_probe_interval", | 4259 | .procname = "router_probe_interval", |
4319 | .data = &ipv6_devconf.rtr_probe_interval, | 4260 | .data = &ipv6_devconf.rtr_probe_interval, |
4320 | .maxlen = sizeof(int), | 4261 | .maxlen = sizeof(int), |
4321 | .mode = 0644, | 4262 | .mode = 0644, |
4322 | .proc_handler = proc_dointvec_jiffies, | 4263 | .proc_handler = proc_dointvec_jiffies, |
4323 | .strategy = sysctl_jiffies, | ||
4324 | }, | 4264 | }, |
4325 | #ifdef CONFIG_IPV6_ROUTE_INFO | 4265 | #ifdef CONFIG_IPV6_ROUTE_INFO |
4326 | { | 4266 | { |
4327 | .ctl_name = NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN, | ||
4328 | .procname = "accept_ra_rt_info_max_plen", | 4267 | .procname = "accept_ra_rt_info_max_plen", |
4329 | .data = &ipv6_devconf.accept_ra_rt_info_max_plen, | 4268 | .data = &ipv6_devconf.accept_ra_rt_info_max_plen, |
4330 | .maxlen = sizeof(int), | 4269 | .maxlen = sizeof(int), |
@@ -4334,7 +4273,6 @@ static struct addrconf_sysctl_table | |||
4334 | #endif | 4273 | #endif |
4335 | #endif | 4274 | #endif |
4336 | { | 4275 | { |
4337 | .ctl_name = NET_IPV6_PROXY_NDP, | ||
4338 | .procname = "proxy_ndp", | 4276 | .procname = "proxy_ndp", |
4339 | .data = &ipv6_devconf.proxy_ndp, | 4277 | .data = &ipv6_devconf.proxy_ndp, |
4340 | .maxlen = sizeof(int), | 4278 | .maxlen = sizeof(int), |
@@ -4342,7 +4280,6 @@ static struct addrconf_sysctl_table | |||
4342 | .proc_handler = proc_dointvec, | 4280 | .proc_handler = proc_dointvec, |
4343 | }, | 4281 | }, |
4344 | { | 4282 | { |
4345 | .ctl_name = NET_IPV6_ACCEPT_SOURCE_ROUTE, | ||
4346 | .procname = "accept_source_route", | 4283 | .procname = "accept_source_route", |
4347 | .data = &ipv6_devconf.accept_source_route, | 4284 | .data = &ipv6_devconf.accept_source_route, |
4348 | .maxlen = sizeof(int), | 4285 | .maxlen = sizeof(int), |
@@ -4351,7 +4288,6 @@ static struct addrconf_sysctl_table | |||
4351 | }, | 4288 | }, |
4352 | #ifdef CONFIG_IPV6_OPTIMISTIC_DAD | 4289 | #ifdef CONFIG_IPV6_OPTIMISTIC_DAD |
4353 | { | 4290 | { |
4354 | .ctl_name = CTL_UNNUMBERED, | ||
4355 | .procname = "optimistic_dad", | 4291 | .procname = "optimistic_dad", |
4356 | .data = &ipv6_devconf.optimistic_dad, | 4292 | .data = &ipv6_devconf.optimistic_dad, |
4357 | .maxlen = sizeof(int), | 4293 | .maxlen = sizeof(int), |
@@ -4362,7 +4298,6 @@ static struct addrconf_sysctl_table | |||
4362 | #endif | 4298 | #endif |
4363 | #ifdef CONFIG_IPV6_MROUTE | 4299 | #ifdef CONFIG_IPV6_MROUTE |
4364 | { | 4300 | { |
4365 | .ctl_name = CTL_UNNUMBERED, | ||
4366 | .procname = "mc_forwarding", | 4301 | .procname = "mc_forwarding", |
4367 | .data = &ipv6_devconf.mc_forwarding, | 4302 | .data = &ipv6_devconf.mc_forwarding, |
4368 | .maxlen = sizeof(int), | 4303 | .maxlen = sizeof(int), |
@@ -4371,16 +4306,13 @@ static struct addrconf_sysctl_table | |||
4371 | }, | 4306 | }, |
4372 | #endif | 4307 | #endif |
4373 | { | 4308 | { |
4374 | .ctl_name = CTL_UNNUMBERED, | ||
4375 | .procname = "disable_ipv6", | 4309 | .procname = "disable_ipv6", |
4376 | .data = &ipv6_devconf.disable_ipv6, | 4310 | .data = &ipv6_devconf.disable_ipv6, |
4377 | .maxlen = sizeof(int), | 4311 | .maxlen = sizeof(int), |
4378 | .mode = 0644, | 4312 | .mode = 0644, |
4379 | .proc_handler = addrconf_sysctl_disable, | 4313 | .proc_handler = addrconf_sysctl_disable, |
4380 | .strategy = sysctl_intvec, | ||
4381 | }, | 4314 | }, |
4382 | { | 4315 | { |
4383 | .ctl_name = CTL_UNNUMBERED, | ||
4384 | .procname = "accept_dad", | 4316 | .procname = "accept_dad", |
4385 | .data = &ipv6_devconf.accept_dad, | 4317 | .data = &ipv6_devconf.accept_dad, |
4386 | .maxlen = sizeof(int), | 4318 | .maxlen = sizeof(int), |
@@ -4388,7 +4320,6 @@ static struct addrconf_sysctl_table | |||
4388 | .proc_handler = proc_dointvec, | 4320 | .proc_handler = proc_dointvec, |
4389 | }, | 4321 | }, |
4390 | { | 4322 | { |
4391 | .ctl_name = CTL_UNNUMBERED, | ||
4392 | .procname = "force_tllao", | 4323 | .procname = "force_tllao", |
4393 | .data = &ipv6_devconf.force_tllao, | 4324 | .data = &ipv6_devconf.force_tllao, |
4394 | .maxlen = sizeof(int), | 4325 | .maxlen = sizeof(int), |
@@ -4396,13 +4327,13 @@ static struct addrconf_sysctl_table | |||
4396 | .proc_handler = proc_dointvec | 4327 | .proc_handler = proc_dointvec |
4397 | }, | 4328 | }, |
4398 | { | 4329 | { |
4399 | .ctl_name = 0, /* sentinel */ | 4330 | /* sentinel */ |
4400 | } | 4331 | } |
4401 | }, | 4332 | }, |
4402 | }; | 4333 | }; |
4403 | 4334 | ||
4404 | static int __addrconf_sysctl_register(struct net *net, char *dev_name, | 4335 | static int __addrconf_sysctl_register(struct net *net, char *dev_name, |
4405 | int ctl_name, struct inet6_dev *idev, struct ipv6_devconf *p) | 4336 | struct inet6_dev *idev, struct ipv6_devconf *p) |
4406 | { | 4337 | { |
4407 | int i; | 4338 | int i; |
4408 | struct addrconf_sysctl_table *t; | 4339 | struct addrconf_sysctl_table *t; |
@@ -4410,9 +4341,9 @@ static int __addrconf_sysctl_register(struct net *net, char *dev_name, | |||
4410 | #define ADDRCONF_CTL_PATH_DEV 3 | 4341 | #define ADDRCONF_CTL_PATH_DEV 3 |
4411 | 4342 | ||
4412 | struct ctl_path addrconf_ctl_path[] = { | 4343 | struct ctl_path addrconf_ctl_path[] = { |
4413 | { .procname = "net", .ctl_name = CTL_NET, }, | 4344 | { .procname = "net", }, |
4414 | { .procname = "ipv6", .ctl_name = NET_IPV6, }, | 4345 | { .procname = "ipv6", }, |
4415 | { .procname = "conf", .ctl_name = NET_IPV6_CONF, }, | 4346 | { .procname = "conf", }, |
4416 | { /* to be set */ }, | 4347 | { /* to be set */ }, |
4417 | { }, | 4348 | { }, |
4418 | }; | 4349 | }; |
@@ -4438,7 +4369,6 @@ static int __addrconf_sysctl_register(struct net *net, char *dev_name, | |||
4438 | goto free; | 4369 | goto free; |
4439 | 4370 | ||
4440 | addrconf_ctl_path[ADDRCONF_CTL_PATH_DEV].procname = t->dev_name; | 4371 | addrconf_ctl_path[ADDRCONF_CTL_PATH_DEV].procname = t->dev_name; |
4441 | addrconf_ctl_path[ADDRCONF_CTL_PATH_DEV].ctl_name = ctl_name; | ||
4442 | 4372 | ||
4443 | t->sysctl_header = register_net_sysctl_table(net, addrconf_ctl_path, | 4373 | t->sysctl_header = register_net_sysctl_table(net, addrconf_ctl_path, |
4444 | t->addrconf_vars); | 4374 | t->addrconf_vars); |
@@ -4474,10 +4404,9 @@ static void addrconf_sysctl_register(struct inet6_dev *idev) | |||
4474 | { | 4404 | { |
4475 | neigh_sysctl_register(idev->dev, idev->nd_parms, NET_IPV6, | 4405 | neigh_sysctl_register(idev->dev, idev->nd_parms, NET_IPV6, |
4476 | NET_IPV6_NEIGH, "ipv6", | 4406 | NET_IPV6_NEIGH, "ipv6", |
4477 | &ndisc_ifinfo_sysctl_change, | 4407 | &ndisc_ifinfo_sysctl_change); |
4478 | ndisc_ifinfo_sysctl_strategy); | ||
4479 | __addrconf_sysctl_register(dev_net(idev->dev), idev->dev->name, | 4408 | __addrconf_sysctl_register(dev_net(idev->dev), idev->dev->name, |
4480 | idev->dev->ifindex, idev, &idev->cnf); | 4409 | idev, &idev->cnf); |
4481 | } | 4410 | } |
4482 | 4411 | ||
4483 | static void addrconf_sysctl_unregister(struct inet6_dev *idev) | 4412 | static void addrconf_sysctl_unregister(struct inet6_dev *idev) |
@@ -4516,13 +4445,11 @@ static int addrconf_init_net(struct net *net) | |||
4516 | net->ipv6.devconf_dflt = dflt; | 4445 | net->ipv6.devconf_dflt = dflt; |
4517 | 4446 | ||
4518 | #ifdef CONFIG_SYSCTL | 4447 | #ifdef CONFIG_SYSCTL |
4519 | err = __addrconf_sysctl_register(net, "all", NET_PROTO_CONF_ALL, | 4448 | err = __addrconf_sysctl_register(net, "all", NULL, all); |
4520 | NULL, all); | ||
4521 | if (err < 0) | 4449 | if (err < 0) |
4522 | goto err_reg_all; | 4450 | goto err_reg_all; |
4523 | 4451 | ||
4524 | err = __addrconf_sysctl_register(net, "default", NET_PROTO_CONF_DEFAULT, | 4452 | err = __addrconf_sysctl_register(net, "default", NULL, dflt); |
4525 | NULL, dflt); | ||
4526 | if (err < 0) | 4453 | if (err < 0) |
4527 | goto err_reg_dflt; | 4454 | goto err_reg_dflt; |
4528 | #endif | 4455 | #endif |