diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 3ad081e9366b..9b96de3ba5eb 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -334,7 +334,7 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev) rwlock_init(&ndev->lock); ndev->dev = dev; - memcpy(&ndev->cnf, &ipv6_devconf_dflt, sizeof(ndev->cnf)); + memcpy(&ndev->cnf, dev->nd_net->ipv6.devconf_dflt, sizeof(ndev->cnf)); ndev->cnf.mtu6 = dev->mtu; ndev->cnf.sysctl = NULL; ndev->nd_parms = neigh_parms_alloc(dev, &nd_tbl); @@ -481,11 +481,11 @@ static void addrconf_fixup_forwarding(struct ctl_table *table, int *p, int old) struct net *net; net = (struct net *)table->extra2; - if (p == &ipv6_devconf_dflt.forwarding) + if (p == &net->ipv6.devconf_dflt->forwarding) return; if (p == &ipv6_devconf.forwarding) { - ipv6_devconf_dflt.forwarding = ipv6_devconf.forwarding; + net->ipv6.devconf_dflt->forwarding = ipv6_devconf.forwarding; addrconf_forward_change(net); } else if ((!*p) ^ (!old)) dev_forward_change((struct inet6_dev *)table->extra1);