net: core: dev_get_valid_name is now the same as dev_alloc_name_ns
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Sun, 12 Nov 2017 23:15:10 +0000 (00:15 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Nov 2017 07:38:46 +0000 (16:38 +0900)
If name contains a %, it's easy to see that this patch doesn't change
anything (other than eliminate the duplicate dev_valid_name
call). Otherwise, we'll now just spend a little time in snprintf()
copying name to the stack buffer allocated in dev_alloc_name_ns, and do
the __dev_get_by_name using that buffer rather than name.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index 1bb856eaed1c42b012eb7aa253c2a301a451cff8..ad5f90dacd92b9bee1e1f6b209f1d4999954b002 100644 (file)
@@ -1146,19 +1146,7 @@ EXPORT_SYMBOL(dev_alloc_name);
 int dev_get_valid_name(struct net *net, struct net_device *dev,
                       const char *name)
 {
-       BUG_ON(!net);
-
-       if (!dev_valid_name(name))
-               return -EINVAL;
-
-       if (strchr(name, '%'))
-               return dev_alloc_name_ns(net, dev, name);
-       else if (__dev_get_by_name(net, name))
-               return -EEXIST;
-       else if (dev->name != name)
-               strlcpy(dev->name, name, IFNAMSIZ);
-
-       return 0;
+       return dev_alloc_name_ns(net, dev, name);
 }
 EXPORT_SYMBOL(dev_get_valid_name);