|
@@ -172,10 +172,6 @@ static int vti6_tnl_create2(struct net_device *dev)
|
|
struct vti6_net *ip6n = net_generic(net, vti6_net_id);
|
|
struct vti6_net *ip6n = net_generic(net, vti6_net_id);
|
|
int err;
|
|
int err;
|
|
|
|
|
|
- err = vti6_dev_init(dev);
|
|
|
|
- if (err < 0)
|
|
|
|
- goto out;
|
|
|
|
-
|
|
|
|
err = register_netdevice(dev);
|
|
err = register_netdevice(dev);
|
|
if (err < 0)
|
|
if (err < 0)
|
|
goto out;
|
|
goto out;
|
|
@@ -783,6 +779,7 @@ static int vti6_change_mtu(struct net_device *dev, int new_mtu)
|
|
}
|
|
}
|
|
|
|
|
|
static const struct net_device_ops vti6_netdev_ops = {
|
|
static const struct net_device_ops vti6_netdev_ops = {
|
|
|
|
+ .ndo_init = vti6_dev_init,
|
|
.ndo_uninit = vti6_dev_uninit,
|
|
.ndo_uninit = vti6_dev_uninit,
|
|
.ndo_start_xmit = vti6_tnl_xmit,
|
|
.ndo_start_xmit = vti6_tnl_xmit,
|
|
.ndo_do_ioctl = vti6_ioctl,
|
|
.ndo_do_ioctl = vti6_ioctl,
|
|
@@ -852,16 +849,10 @@ static int __net_init vti6_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 vti6_net *ip6n = net_generic(net, vti6_net_id);
|
|
struct vti6_net *ip6n = net_generic(net, vti6_net_id);
|
|
- int err = vti6_dev_init_gen(dev);
|
|
|
|
-
|
|
|
|
- if (err)
|
|
|
|
- return err;
|
|
|
|
|
|
|
|
t->parms.proto = IPPROTO_IPV6;
|
|
t->parms.proto = IPPROTO_IPV6;
|
|
dev_hold(dev);
|
|
dev_hold(dev);
|
|
|
|
|
|
- vti6_link_config(t);
|
|
|
|
-
|
|
|
|
rcu_assign_pointer(ip6n->tnls_wc[0], t);
|
|
rcu_assign_pointer(ip6n->tnls_wc[0], t);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|