Merge tag 'trace-ipi-tracepoints' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / ip6_vti.c
index 9aaa6bb229e485fd657a5ca4bd30b6ebb9e90c5f..7f52fd9fa7b0d694dfa35f6246133d379f8ea710 100644 (file)
@@ -204,7 +204,7 @@ static struct ip6_tnl *vti6_tnl_create(struct net *net, struct __ip6_tnl_parm *p
        else
                sprintf(name, "ip6_vti%%d");
 
-       dev = alloc_netdev(sizeof(*t), name, vti6_dev_setup);
+       dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, vti6_dev_setup);
        if (dev == NULL)
                goto failed;
 
@@ -1020,7 +1020,7 @@ static int __net_init vti6_init_net(struct net *net)
 
        err = -ENOMEM;
        ip6n->fb_tnl_dev = alloc_netdev(sizeof(struct ip6_tnl), "ip6_vti0",
-                                       vti6_dev_setup);
+                                       NET_NAME_UNKNOWN, vti6_dev_setup);
 
        if (!ip6n->fb_tnl_dev)
                goto err_alloc_dev;
@@ -1089,36 +1089,26 @@ static struct xfrm6_protocol vti_ipcomp6_protocol __read_mostly = {
  **/
 static int __init vti6_tunnel_init(void)
 {
-       int  err;
+       const char *msg;
+       int err;
 
+       msg = "tunnel device";
        err = register_pernet_device(&vti6_net_ops);
        if (err < 0)
-               goto out_pernet;
+               goto pernet_dev_failed;
 
+       msg = "tunnel protocols";
        err = xfrm6_protocol_register(&vti_esp6_protocol, IPPROTO_ESP);
-       if (err < 0) {
-               pr_err("%s: can't register vti6 protocol\n", __func__);
-
-               goto out;
-       }
-
+       if (err < 0)
+               goto xfrm_proto_esp_failed;
        err = xfrm6_protocol_register(&vti_ah6_protocol, IPPROTO_AH);
-       if (err < 0) {
-               xfrm6_protocol_deregister(&vti_esp6_protocol, IPPROTO_ESP);
-               pr_err("%s: can't register vti6 protocol\n", __func__);
-
-               goto out;
-       }
-
+       if (err < 0)
+               goto xfrm_proto_ah_failed;
        err = xfrm6_protocol_register(&vti_ipcomp6_protocol, IPPROTO_COMP);
-       if (err < 0) {
-               xfrm6_protocol_deregister(&vti_ah6_protocol, IPPROTO_AH);
-               xfrm6_protocol_deregister(&vti_esp6_protocol, IPPROTO_ESP);
-               pr_err("%s: can't register vti6 protocol\n", __func__);
-
-               goto out;
-       }
+       if (err < 0)
+               goto xfrm_proto_comp_failed;
 
+       msg = "netlink interface";
        err = rtnl_link_register(&vti6_link_ops);
        if (err < 0)
                goto rtnl_link_failed;
@@ -1127,11 +1117,14 @@ static int __init vti6_tunnel_init(void)
 
 rtnl_link_failed:
        xfrm6_protocol_deregister(&vti_ipcomp6_protocol, IPPROTO_COMP);
+xfrm_proto_comp_failed:
        xfrm6_protocol_deregister(&vti_ah6_protocol, IPPROTO_AH);
+xfrm_proto_ah_failed:
        xfrm6_protocol_deregister(&vti_esp6_protocol, IPPROTO_ESP);
-out:
+xfrm_proto_esp_failed:
        unregister_pernet_device(&vti6_net_ops);
-out_pernet:
+pernet_dev_failed:
+       pr_err("vti6 init: failed to register %s\n", msg);
        return err;
 }
 
@@ -1141,13 +1134,9 @@ out_pernet:
 static void __exit vti6_tunnel_cleanup(void)
 {
        rtnl_link_unregister(&vti6_link_ops);
-       if (xfrm6_protocol_deregister(&vti_ipcomp6_protocol, IPPROTO_COMP))
-               pr_info("%s: can't deregister protocol\n", __func__);
-       if (xfrm6_protocol_deregister(&vti_ah6_protocol, IPPROTO_AH))
-               pr_info("%s: can't deregister protocol\n", __func__);
-       if (xfrm6_protocol_deregister(&vti_esp6_protocol, IPPROTO_ESP))
-               pr_info("%s: can't deregister protocol\n", __func__);
-
+       xfrm6_protocol_deregister(&vti_ipcomp6_protocol, IPPROTO_COMP);
+       xfrm6_protocol_deregister(&vti_ah6_protocol, IPPROTO_AH);
+       xfrm6_protocol_deregister(&vti_esp6_protocol, IPPROTO_ESP);
        unregister_pernet_device(&vti6_net_ops);
 }