aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index e95dc30110eb..3b79bad3d02d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -948,7 +948,7 @@ int dev_alloc_name(struct net_device *dev, const char *name)
948} 948}
949EXPORT_SYMBOL(dev_alloc_name); 949EXPORT_SYMBOL(dev_alloc_name);
950 950
951static int dev_get_valid_name(struct net_device *dev, const char *name, bool fmt) 951static int dev_get_valid_name(struct net_device *dev, const char *name)
952{ 952{
953 struct net *net; 953 struct net *net;
954 954
@@ -958,7 +958,7 @@ static int dev_get_valid_name(struct net_device *dev, const char *name, bool fmt
958 if (!dev_valid_name(name)) 958 if (!dev_valid_name(name))
959 return -EINVAL; 959 return -EINVAL;
960 960
961 if (fmt && strchr(name, '%')) 961 if (strchr(name, '%'))
962 return dev_alloc_name(dev, name); 962 return dev_alloc_name(dev, name);
963 else if (__dev_get_by_name(net, name)) 963 else if (__dev_get_by_name(net, name))
964 return -EEXIST; 964 return -EEXIST;
@@ -995,7 +995,7 @@ int dev_change_name(struct net_device *dev, const char *newname)
995 995
996 memcpy(oldname, dev->name, IFNAMSIZ); 996 memcpy(oldname, dev->name, IFNAMSIZ);
997 997
998 err = dev_get_valid_name(dev, newname, 1); 998 err = dev_get_valid_name(dev, newname);
999 if (err < 0) 999 if (err < 0)
1000 return err; 1000 return err;
1001 1001
@@ -5420,8 +5420,8 @@ int register_netdevice(struct net_device *dev)
5420 } 5420 }
5421 } 5421 }
5422 5422
5423 ret = dev_get_valid_name(dev, dev->name, 0); 5423 ret = dev_get_valid_name(dev, dev->name);
5424 if (ret) 5424 if (ret < 0)
5425 goto err_uninit; 5425 goto err_uninit;
5426 5426
5427 dev->ifindex = dev_new_index(net); 5427 dev->ifindex = dev_new_index(net);
@@ -5562,19 +5562,7 @@ int register_netdev(struct net_device *dev)
5562 int err; 5562 int err;
5563 5563
5564 rtnl_lock(); 5564 rtnl_lock();
5565
5566 /*
5567 * If the name is a format string the caller wants us to do a
5568 * name allocation.
5569 */
5570 if (strchr(dev->name, '%')) {
5571 err = dev_alloc_name(dev, dev->name);
5572 if (err < 0)
5573 goto out;
5574 }
5575
5576 err = register_netdevice(dev); 5565 err = register_netdevice(dev);
5577out:
5578 rtnl_unlock(); 5566 rtnl_unlock();
5579 return err; 5567 return err;
5580} 5568}
@@ -6056,7 +6044,7 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
6056 /* We get here if we can't use the current device name */ 6044 /* We get here if we can't use the current device name */
6057 if (!pat) 6045 if (!pat)
6058 goto out; 6046 goto out;
6059 if (dev_get_valid_name(dev, pat, 1)) 6047 if (dev_get_valid_name(dev, pat) < 0)
6060 goto out; 6048 goto out;
6061 } 6049 }
6062 6050