veth.c (237114384ab22c174ec4641e809f8e6cbcfce774) | veth.c (f2cedb63df14342ad40a8b5b324fc5d94a60b665) |
---|---|
1/* 2 * drivers/net/veth.c 3 * 4 * Copyright (C) 2007 OpenVZ http://openvz.org, SWsoft Inc 5 * 6 * Author: Pavel Emelianov <xemul@openvz.org> 7 * Ethtool interface from: Eric W. Biederman <ebiederm@xmission.com> 8 * --- 332 unchanged lines hidden (view full) --- 341 342 peer = rtnl_create_link(src_net, net, ifname, &veth_link_ops, tbp); 343 if (IS_ERR(peer)) { 344 put_net(net); 345 return PTR_ERR(peer); 346 } 347 348 if (tbp[IFLA_ADDRESS] == NULL) | 1/* 2 * drivers/net/veth.c 3 * 4 * Copyright (C) 2007 OpenVZ http://openvz.org, SWsoft Inc 5 * 6 * Author: Pavel Emelianov <xemul@openvz.org> 7 * Ethtool interface from: Eric W. Biederman <ebiederm@xmission.com> 8 * --- 332 unchanged lines hidden (view full) --- 341 342 peer = rtnl_create_link(src_net, net, ifname, &veth_link_ops, tbp); 343 if (IS_ERR(peer)) { 344 put_net(net); 345 return PTR_ERR(peer); 346 } 347 348 if (tbp[IFLA_ADDRESS] == NULL) |
349 random_ether_addr(peer->dev_addr); | 349 eth_hw_addr_random(peer); |
350 351 err = register_netdevice(peer); 352 put_net(net); 353 net = NULL; 354 if (err < 0) 355 goto err_register_peer; 356 357 netif_carrier_off(peer); --- 5 unchanged lines hidden (view full) --- 363 /* 364 * register dev last 365 * 366 * note, that since we've registered new device the dev's name 367 * should be re-allocated 368 */ 369 370 if (tb[IFLA_ADDRESS] == NULL) | 350 351 err = register_netdevice(peer); 352 put_net(net); 353 net = NULL; 354 if (err < 0) 355 goto err_register_peer; 356 357 netif_carrier_off(peer); --- 5 unchanged lines hidden (view full) --- 363 /* 364 * register dev last 365 * 366 * note, that since we've registered new device the dev's name 367 * should be re-allocated 368 */ 369 370 if (tb[IFLA_ADDRESS] == NULL) |
371 random_ether_addr(dev->dev_addr); | 371 eth_hw_addr_random(dev); |
372 373 if (tb[IFLA_IFNAME]) 374 nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ); 375 else 376 snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d"); 377 378 if (strchr(dev->name, '%')) { 379 err = dev_alloc_name(dev, dev->name); --- 37 unchanged lines hidden (view full) --- 417 418 priv = netdev_priv(dev); 419 peer = priv->peer; 420 421 unregister_netdevice_queue(dev, head); 422 unregister_netdevice_queue(peer, head); 423} 424 | 372 373 if (tb[IFLA_IFNAME]) 374 nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ); 375 else 376 snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d"); 377 378 if (strchr(dev->name, '%')) { 379 err = dev_alloc_name(dev, dev->name); --- 37 unchanged lines hidden (view full) --- 417 418 priv = netdev_priv(dev); 419 peer = priv->peer; 420 421 unregister_netdevice_queue(dev, head); 422 unregister_netdevice_queue(peer, head); 423} 424 |
425static const struct nla_policy veth_policy[VETH_INFO_MAX + 1] = { 426 [VETH_INFO_PEER] = { .len = sizeof(struct ifinfomsg) }, 427}; | 425static const struct nla_policy veth_policy[VETH_INFO_MAX + 1]; |
428 429static struct rtnl_link_ops veth_link_ops = { 430 .kind = DRV_NAME, 431 .priv_size = sizeof(struct veth_priv), 432 .setup = veth_setup, 433 .validate = veth_validate, 434 .newlink = veth_newlink, 435 .dellink = veth_dellink, --- 24 unchanged lines hidden --- | 426 427static struct rtnl_link_ops veth_link_ops = { 428 .kind = DRV_NAME, 429 .priv_size = sizeof(struct veth_priv), 430 .setup = veth_setup, 431 .validate = veth_validate, 432 .newlink = veth_newlink, 433 .dellink = veth_dellink, --- 24 unchanged lines hidden --- |