Skip to content

Commit 1c5cae8

Browse files
Jiri Pirkodavem330
authored andcommitted
net: call dev_alloc_name from register_netdevice
Force dev_alloc_name() to be called from register_netdevice() by dev_get_valid_name(). That allows to remove multiple explicit dev_alloc_name() calls. The possibility to call dev_alloc_name in advance remains. This also fixes veth creation regresion caused by 84c49d8 Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent e892067 commit 1c5cae8

File tree

20 files changed

+12
-134
lines changed

20 files changed

+12
-134
lines changed

drivers/ieee802154/fakehard.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -393,16 +393,6 @@ static int __devinit ieee802154fake_probe(struct platform_device *pdev)
393393
priv = netdev_priv(dev);
394394
priv->phy = phy;
395395

396-
/*
397-
* If the name is a format string the caller wants us to do a
398-
* name allocation.
399-
*/
400-
if (strchr(dev->name, '%')) {
401-
err = dev_alloc_name(dev, dev->name);
402-
if (err < 0)
403-
goto out;
404-
}
405-
406396
wpan_phy_set_dev(phy, &pdev->dev);
407397
SET_NETDEV_DEV(dev, &phy->dev);
408398

drivers/net/bonding/bond_main.c

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4917,8 +4917,9 @@ int bond_create(struct net *net, const char *name)
49174917

49184918
rtnl_lock();
49194919

4920-
bond_dev = alloc_netdev_mq(sizeof(struct bonding), name ? name : "",
4921-
bond_setup, tx_queues);
4920+
bond_dev = alloc_netdev_mq(sizeof(struct bonding),
4921+
name ? name : "bond%d",
4922+
bond_setup, tx_queues);
49224923
if (!bond_dev) {
49234924
pr_err("%s: eek! can't alloc netdev!\n", name);
49244925
rtnl_unlock();
@@ -4928,26 +4929,10 @@ int bond_create(struct net *net, const char *name)
49284929
dev_net_set(bond_dev, net);
49294930
bond_dev->rtnl_link_ops = &bond_link_ops;
49304931

4931-
if (!name) {
4932-
res = dev_alloc_name(bond_dev, "bond%d");
4933-
if (res < 0)
4934-
goto out;
4935-
} else {
4936-
/*
4937-
* If we're given a name to register
4938-
* we need to ensure that its not already
4939-
* registered
4940-
*/
4941-
res = -EEXIST;
4942-
if (__dev_get_by_name(net, name) != NULL)
4943-
goto out;
4944-
}
4945-
49464932
res = register_netdevice(bond_dev);
49474933

49484934
netif_carrier_off(bond_dev);
49494935

4950-
out:
49514936
rtnl_unlock();
49524937
if (res < 0)
49534938
bond_destructor(bond_dev);

drivers/net/dummy.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,6 @@ static int __init dummy_init_one(void)
168168
if (!dev_dummy)
169169
return -ENOMEM;
170170

171-
err = dev_alloc_name(dev_dummy, dev_dummy->name);
172-
if (err < 0)
173-
goto err;
174-
175171
dev_dummy->rtnl_link_ops = &dummy_link_ops;
176172
err = register_netdevice(dev_dummy);
177173
if (err < 0)

drivers/net/hamradio/bpqether.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,6 @@ static int bpq_new_device(struct net_device *edev)
516516
memcpy(bpq->dest_addr, bcast_addr, sizeof(bpq_eth_addr));
517517
memcpy(bpq->acpt_addr, bcast_addr, sizeof(bpq_eth_addr));
518518

519-
err = dev_alloc_name(ndev, ndev->name);
520-
if (err < 0)
521-
goto error;
522-
523519
err = register_netdevice(ndev);
524520
if (err)
525521
goto error;

drivers/net/ifb.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,6 @@ static int __init ifb_init_one(int index)
233233
if (!dev_ifb)
234234
return -ENOMEM;
235235

236-
err = dev_alloc_name(dev_ifb, dev_ifb->name);
237-
if (err < 0)
238-
goto err;
239-
240236
dev_ifb->rtnl_link_ops = &ifb_link_ops;
241237
err = register_netdevice(dev_ifb);
242238
if (err < 0)

drivers/net/tun.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,12 +1099,6 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
10991099

11001100
tun_net_init(dev);
11011101

1102-
if (strchr(dev->name, '%')) {
1103-
err = dev_alloc_name(dev, dev->name);
1104-
if (err < 0)
1105-
goto err_free_sk;
1106-
}
1107-
11081102
dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST |
11091103
TUN_USER_FEATURES;
11101104
dev->features = dev->hw_features;

drivers/net/wan/dlci.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,10 +341,6 @@ static int dlci_add(struct dlci_add *dlci)
341341
}
342342
}
343343

344-
err = dev_alloc_name(master, master->name);
345-
if (err < 0)
346-
goto err2;
347-
348344
*(short *)(master->dev_addr) = dlci->dlci;
349345

350346
dlp = netdev_priv(master);

drivers/net/wan/hdlc_fr.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,7 +1070,7 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
10701070
hdlc_device *hdlc = dev_to_hdlc(frad);
10711071
pvc_device *pvc;
10721072
struct net_device *dev;
1073-
int result, used;
1073+
int used;
10741074

10751075
if ((pvc = add_pvc(frad, dlci)) == NULL) {
10761076
printk(KERN_WARNING "%s: Memory squeeze on fr_add_pvc()\n",
@@ -1106,13 +1106,6 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
11061106
dev->tx_queue_len = 0;
11071107
dev->ml_priv = pvc;
11081108

1109-
result = dev_alloc_name(dev, dev->name);
1110-
if (result < 0) {
1111-
free_netdev(dev);
1112-
delete_unused_pvcs(hdlc);
1113-
return result;
1114-
}
1115-
11161109
if (register_netdevice(dev) != 0) {
11171110
free_netdev(dev);
11181111
delete_unused_pvcs(hdlc);

drivers/net/wan/lapbether.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,6 @@ static int lapbeth_new_device(struct net_device *dev)
338338
dev_hold(dev);
339339
lapbeth->ethdev = dev;
340340

341-
rc = dev_alloc_name(ndev, ndev->name);
342-
if (rc < 0)
343-
goto fail;
344-
345341
rc = -EIO;
346342
if (register_netdevice(ndev))
347343
goto fail;

drivers/net/wireless/hostap/hostap_main.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,8 @@ struct net_device * hostap_add_interface(struct local_info *local,
7979
if (!rtnl_locked)
8080
rtnl_lock();
8181

82-
ret = 0;
83-
if (strchr(dev->name, '%'))
84-
ret = dev_alloc_name(dev, dev->name);
85-
8682
SET_NETDEV_DEV(dev, mdev->dev.parent);
87-
if (ret >= 0)
88-
ret = register_netdevice(dev);
83+
ret = register_netdevice(dev);
8984

9085
if (!rtnl_locked)
9186
rtnl_unlock();

drivers/net/wireless/mac80211_hwsim.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,19 +1515,10 @@ static int __init init_mac80211_hwsim(void)
15151515
if (hwsim_mon == NULL)
15161516
goto failed;
15171517

1518-
rtnl_lock();
1519-
1520-
err = dev_alloc_name(hwsim_mon, hwsim_mon->name);
1518+
err = register_netdev(hwsim_mon);
15211519
if (err < 0)
15221520
goto failed_mon;
15231521

1524-
1525-
err = register_netdevice(hwsim_mon);
1526-
if (err < 0)
1527-
goto failed_mon;
1528-
1529-
rtnl_unlock();
1530-
15311522
return 0;
15321523

15331524
failed_mon:

drivers/net/wireless/mwifiex/main.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -706,10 +706,6 @@ static struct mwifiex_private *mwifiex_add_interface(
706706
dev_err(adapter->dev, "no memory available for netdevice\n");
707707
goto error;
708708
}
709-
if (dev_alloc_name(dev, dev->name)) {
710-
dev_err(adapter->dev, "unable to alloc name for netdevice\n");
711-
goto error;
712-
}
713709

714710
if (mwifiex_register_cfg80211(dev, adapter->priv[bss_index]->curr_addr,
715711
adapter->priv[bss_index]) != 0) {

drivers/s390/net/netiucv.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,8 +1994,6 @@ static struct net_device *netiucv_init_netdevice(char *username)
19941994
netiucv_setup_netdevice);
19951995
if (!dev)
19961996
return NULL;
1997-
if (dev_alloc_name(dev, dev->name) < 0)
1998-
goto out_netdev;
19991997

20001998
privptr = netdev_priv(dev);
20011999
privptr->fsm = init_fsm("netiucvdev", dev_state_names,

net/core/dev.c

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,7 @@ int dev_alloc_name(struct net_device *dev, const char *name)
948948
}
949949
EXPORT_SYMBOL(dev_alloc_name);
950950

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)
952952
{
953953
struct net *net;
954954

@@ -958,7 +958,7 @@ static int dev_get_valid_name(struct net_device *dev, const char *name, bool fmt
958958
if (!dev_valid_name(name))
959959
return -EINVAL;
960960

961-
if (fmt && strchr(name, '%'))
961+
if (strchr(name, '%'))
962962
return dev_alloc_name(dev, name);
963963
else if (__dev_get_by_name(net, name))
964964
return -EEXIST;
@@ -995,7 +995,7 @@ int dev_change_name(struct net_device *dev, const char *newname)
995995

996996
memcpy(oldname, dev->name, IFNAMSIZ);
997997

998-
err = dev_get_valid_name(dev, newname, 1);
998+
err = dev_get_valid_name(dev, newname);
999999
if (err < 0)
10001000
return err;
10011001

@@ -5420,8 +5420,8 @@ int register_netdevice(struct net_device *dev)
54205420
}
54215421
}
54225422

5423-
ret = dev_get_valid_name(dev, dev->name, 0);
5424-
if (ret)
5423+
ret = dev_get_valid_name(dev, dev->name);
5424+
if (ret < 0)
54255425
goto err_uninit;
54265426

54275427
dev->ifindex = dev_new_index(net);
@@ -5562,19 +5562,7 @@ int register_netdev(struct net_device *dev)
55625562
int err;
55635563

55645564
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-
55765565
err = register_netdevice(dev);
5577-
out:
55785566
rtnl_unlock();
55795567
return err;
55805568
}
@@ -6056,7 +6044,7 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
60566044
/* We get here if we can't use the current device name */
60576045
if (!pat)
60586046
goto out;
6059-
if (dev_get_valid_name(dev, pat, 1))
6047+
if (dev_get_valid_name(dev, pat) < 0)
60606048
goto out;
60616049
}
60626050

net/core/rtnetlink.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,12 +1572,6 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net,
15721572
dev->rtnl_link_state = RTNL_LINK_INITIALIZING;
15731573
dev->real_num_tx_queues = real_num_queues;
15741574

1575-
if (strchr(dev->name, '%')) {
1576-
err = dev_alloc_name(dev, dev->name);
1577-
if (err < 0)
1578-
goto err_free;
1579-
}
1580-
15811575
if (tb[IFLA_MTU])
15821576
dev->mtu = nla_get_u32(tb[IFLA_MTU]);
15831577
if (tb[IFLA_ADDRESS])
@@ -1597,8 +1591,6 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net,
15971591

15981592
return dev;
15991593

1600-
err_free:
1601-
free_netdev(dev);
16021594
err:
16031595
return ERR_PTR(err);
16041596
}

net/ipv4/ip_gre.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,11 +413,6 @@ static struct ip_tunnel *ipgre_tunnel_locate(struct net *net,
413413

414414
dev_net_set(dev, net);
415415

416-
if (strchr(name, '%')) {
417-
if (dev_alloc_name(dev, name) < 0)
418-
goto failed_free;
419-
}
420-
421416
nt = netdev_priv(dev);
422417
nt->parms = *parms;
423418
dev->rtnl_link_ops = &ipgre_link_ops;

net/ipv4/ipip.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,6 @@ static struct ip_tunnel * ipip_tunnel_locate(struct net *net,
276276

277277
dev_net_set(dev, net);
278278

279-
if (strchr(name, '%')) {
280-
if (dev_alloc_name(dev, name) < 0)
281-
goto failed_free;
282-
}
283-
284279
nt = netdev_priv(dev);
285280
nt->parms = *parms;
286281

net/ipv6/ip6_tunnel.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -280,11 +280,6 @@ static struct ip6_tnl *ip6_tnl_create(struct net *net, struct ip6_tnl_parm *p)
280280

281281
dev_net_set(dev, net);
282282

283-
if (strchr(name, '%')) {
284-
if (dev_alloc_name(dev, name) < 0)
285-
goto failed_free;
286-
}
287-
288283
t = netdev_priv(dev);
289284
t->parms = *p;
290285
err = ip6_tnl_dev_init(dev);

net/ipv6/sit.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,11 +250,6 @@ static struct ip_tunnel *ipip6_tunnel_locate(struct net *net,
250250

251251
dev_net_set(dev, net);
252252

253-
if (strchr(name, '%')) {
254-
if (dev_alloc_name(dev, name) < 0)
255-
goto failed_free;
256-
}
257-
258253
nt = netdev_priv(dev);
259254

260255
nt->parms = *parms;

net/mac80211/iface.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,10 +1144,6 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
11441144
+ IEEE80211_ENCRYPT_HEADROOM;
11451145
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
11461146

1147-
ret = dev_alloc_name(ndev, ndev->name);
1148-
if (ret < 0)
1149-
goto fail;
1150-
11511147
ieee80211_assign_perm_addr(local, ndev, type);
11521148
memcpy(ndev->dev_addr, ndev->perm_addr, ETH_ALEN);
11531149
SET_NETDEV_DEV(ndev, wiphy_dev(local->hw.wiphy));

0 commit comments

Comments
 (0)