if (parms->name[0]) {
                if (!dev_valid_name(parms->name))
                        return NULL;
-               strscpy(name, parms->name, IFNAMSIZ);
+               strscpy(name, parms->name);
        } else {
-               strcpy(name, "ip6gre%d");
+               strscpy(name, "ip6gre%d");
        }
        dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN,
                           ip6gre_tunnel_setup);
        tunnel = netdev_priv(dev);
 
        tunnel->dev = dev;
-       strcpy(tunnel->parms.name, dev->name);
+       strscpy(tunnel->parms.name, dev->name);
 
        ret = dst_cache_init(&tunnel->dst_cache, GFP_KERNEL);
        if (ret)
 
        tunnel->dev = dev;
        tunnel->net = dev_net(dev);
-       strcpy(tunnel->parms.name, dev->name);
+       strscpy(tunnel->parms.name, dev->name);
 
        tunnel->hlen            = sizeof(struct ipv6hdr) + 4;
 }
        tunnel = netdev_priv(dev);
 
        tunnel->dev = dev;
-       strcpy(tunnel->parms.name, dev->name);
+       strscpy(tunnel->parms.name, dev->name);
 
        ret = dst_cache_init(&tunnel->dst_cache, GFP_KERNEL);
        if (ret)