|
|
@@ -2232,7 +2232,7 @@ static struct devinet_sysctl_table {
|
|
|
};
|
|
|
|
|
|
static int __devinet_sysctl_register(struct net *net, char *dev_name,
|
|
|
- struct ipv4_devconf *p)
|
|
|
+ int ifindex, struct ipv4_devconf *p)
|
|
|
{
|
|
|
int i;
|
|
|
struct devinet_sysctl_table *t;
|
|
|
@@ -2255,6 +2255,8 @@ static int __devinet_sysctl_register(struct net *net, char *dev_name,
|
|
|
goto free;
|
|
|
|
|
|
p->sysctl = t;
|
|
|
+
|
|
|
+ inet_netconf_notify_devconf(net, NETCONFA_ALL, ifindex, p);
|
|
|
return 0;
|
|
|
|
|
|
free:
|
|
|
@@ -2286,7 +2288,7 @@ static int devinet_sysctl_register(struct in_device *idev)
|
|
|
if (err)
|
|
|
return err;
|
|
|
err = __devinet_sysctl_register(dev_net(idev->dev), idev->dev->name,
|
|
|
- &idev->cnf);
|
|
|
+ idev->dev->ifindex, &idev->cnf);
|
|
|
if (err)
|
|
|
neigh_sysctl_unregister(idev->arp_parms);
|
|
|
return err;
|
|
|
@@ -2347,11 +2349,12 @@ static __net_init int devinet_init_net(struct net *net)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SYSCTL
|
|
|
- err = __devinet_sysctl_register(net, "all", all);
|
|
|
+ err = __devinet_sysctl_register(net, "all", NETCONFA_IFINDEX_ALL, all);
|
|
|
if (err < 0)
|
|
|
goto err_reg_all;
|
|
|
|
|
|
- err = __devinet_sysctl_register(net, "default", dflt);
|
|
|
+ err = __devinet_sysctl_register(net, "default",
|
|
|
+ NETCONFA_IFINDEX_DEFAULT, dflt);
|
|
|
if (err < 0)
|
|
|
goto err_reg_dflt;
|
|
|
|