Revert: veth: remove unneeded ifname code from veth_newlink()
84c49d8c3e
("veth: remove unneeded
ifname code from veth_newlink()") caused regression on veth
creation. This patch reverts the original one.
Reported-by: Michał Mirosław <mirqus@gmail.com>
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d946092000
commit
6c8c44462a
1 changed files with 12 additions and 0 deletions
|
@ -403,6 +403,17 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
|
|||
if (tb[IFLA_ADDRESS] == NULL)
|
||||
random_ether_addr(dev->dev_addr);
|
||||
|
||||
if (tb[IFLA_IFNAME])
|
||||
nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
|
||||
else
|
||||
snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d");
|
||||
|
||||
if (strchr(dev->name, '%')) {
|
||||
err = dev_alloc_name(dev, dev->name);
|
||||
if (err < 0)
|
||||
goto err_alloc_name;
|
||||
}
|
||||
|
||||
err = register_netdevice(dev);
|
||||
if (err < 0)
|
||||
goto err_register_dev;
|
||||
|
@ -422,6 +433,7 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
|
|||
|
||||
err_register_dev:
|
||||
/* nothing to do */
|
||||
err_alloc_name:
|
||||
err_configure_peer:
|
||||
unregister_netdevice(peer);
|
||||
return err;
|
||||
|
|
Loading…
Reference in a new issue