diff options
Diffstat (limited to 'net/core')
| -rw-r--r-- | net/core/dev.c | 24 | ||||
| -rw-r--r-- | net/core/rtnetlink.c | 8 |
2 files changed, 6 insertions, 26 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 | } |
| 949 | EXPORT_SYMBOL(dev_alloc_name); | 949 | EXPORT_SYMBOL(dev_alloc_name); |
| 950 | 950 | ||
| 951 | static int dev_get_valid_name(struct net_device *dev, const char *name, bool fmt) | 951 | static 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); |
| 5577 | out: | ||
| 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 | ||
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 296331257195..5a160f4a1ba0 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
| @@ -1572,12 +1572,6 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net, | |||
| 1572 | dev->rtnl_link_state = RTNL_LINK_INITIALIZING; | 1572 | dev->rtnl_link_state = RTNL_LINK_INITIALIZING; |
| 1573 | dev->real_num_tx_queues = real_num_queues; | 1573 | dev->real_num_tx_queues = real_num_queues; |
| 1574 | 1574 | ||
| 1575 | if (strchr(dev->name, '%')) { | ||
| 1576 | err = dev_alloc_name(dev, dev->name); | ||
| 1577 | if (err < 0) | ||
| 1578 | goto err_free; | ||
| 1579 | } | ||
| 1580 | |||
| 1581 | if (tb[IFLA_MTU]) | 1575 | if (tb[IFLA_MTU]) |
| 1582 | dev->mtu = nla_get_u32(tb[IFLA_MTU]); | 1576 | dev->mtu = nla_get_u32(tb[IFLA_MTU]); |
| 1583 | if (tb[IFLA_ADDRESS]) | 1577 | if (tb[IFLA_ADDRESS]) |
| @@ -1597,8 +1591,6 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net, | |||
| 1597 | 1591 | ||
| 1598 | return dev; | 1592 | return dev; |
| 1599 | 1593 | ||
| 1600 | err_free: | ||
| 1601 | free_netdev(dev); | ||
| 1602 | err: | 1594 | err: |
| 1603 | return ERR_PTR(err); | 1595 | return ERR_PTR(err); |
| 1604 | } | 1596 | } |
