|
@@ -272,9 +272,6 @@ static int ip6_tnl_create2(struct net_device *dev)
|
|
int err;
|
|
int err;
|
|
|
|
|
|
t = netdev_priv(dev);
|
|
t = netdev_priv(dev);
|
|
- err = ip6_tnl_dev_init(dev);
|
|
|
|
- if (err < 0)
|
|
|
|
- goto out;
|
|
|
|
|
|
|
|
err = register_netdevice(dev);
|
|
err = register_netdevice(dev);
|
|
if (err < 0)
|
|
if (err < 0)
|
|
@@ -1462,6 +1459,7 @@ ip6_tnl_change_mtu(struct net_device *dev, int new_mtu)
|
|
|
|
|
|
|
|
|
|
static const struct net_device_ops ip6_tnl_netdev_ops = {
|
|
static const struct net_device_ops ip6_tnl_netdev_ops = {
|
|
|
|
+ .ndo_init = ip6_tnl_dev_init,
|
|
.ndo_uninit = ip6_tnl_dev_uninit,
|
|
.ndo_uninit = ip6_tnl_dev_uninit,
|
|
.ndo_start_xmit = ip6_tnl_xmit,
|
|
.ndo_start_xmit = ip6_tnl_xmit,
|
|
.ndo_do_ioctl = ip6_tnl_ioctl,
|
|
.ndo_do_ioctl = ip6_tnl_ioctl,
|
|
@@ -1546,16 +1544,10 @@ static int __net_init ip6_fb_tnl_dev_init(struct net_device *dev)
|
|
struct ip6_tnl *t = netdev_priv(dev);
|
|
struct ip6_tnl *t = netdev_priv(dev);
|
|
struct net *net = dev_net(dev);
|
|
struct net *net = dev_net(dev);
|
|
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
|
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
|
- int err = ip6_tnl_dev_init_gen(dev);
|
|
|
|
-
|
|
|
|
- if (err)
|
|
|
|
- return err;
|
|
|
|
|
|
|
|
t->parms.proto = IPPROTO_IPV6;
|
|
t->parms.proto = IPPROTO_IPV6;
|
|
dev_hold(dev);
|
|
dev_hold(dev);
|
|
|
|
|
|
- ip6_tnl_link_config(t);
|
|
|
|
-
|
|
|
|
rcu_assign_pointer(ip6n->tnls_wc[0], t);
|
|
rcu_assign_pointer(ip6n->tnls_wc[0], t);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|