]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv6/ip6_tunnel.c
[IPV6]: Fix ipv6 address fetching in raw6_icmp_error().
[linux-2.6-omap-h63xx.git] / net / ipv6 / ip6_tunnel.c
index 2a124e9a1b2d5b46bcd70c18364ce1e9775b5cbc..78f438880923b74e24dfd545b9d586b7a54fecd6 100644 (file)
@@ -238,17 +238,24 @@ static struct ip6_tnl *ip6_tnl_create(struct ip6_tnl_parm *p)
        if (dev == NULL)
                goto failed;
 
+       if (strchr(name, '%')) {
+               if (dev_alloc_name(dev, name) < 0)
+                       goto failed_free;
+       }
+
        t = netdev_priv(dev);
        dev->init = ip6_tnl_dev_init;
        t->parms = *p;
 
-       if ((err = register_netdevice(dev)) < 0) {
-               free_netdev(dev);
-               goto failed;
-       }
+       if ((err = register_netdevice(dev)) < 0)
+               goto failed_free;
+
        dev_hold(dev);
        ip6_tnl_link(t);
        return t;
+
+failed_free:
+       free_netdev(dev);
 failed:
        return NULL;
 }