rtnetlink.c (a399a8053164ec8bcb06fed52be9941a26ecde11) | rtnetlink.c (9c7dafbfab1554705f85523fead578aa1a3d338c) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 1798 unchanged lines hidden (view full) --- 1807 if (!(nlh->nlmsg_flags & NLM_F_CREATE)) { 1808 if (ifm->ifi_index == 0 && tb[IFLA_GROUP]) 1809 return rtnl_group_changelink(net, 1810 nla_get_u32(tb[IFLA_GROUP]), 1811 ifm, tb); 1812 return -ENODEV; 1813 } 1814 | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 1798 unchanged lines hidden (view full) --- 1807 if (!(nlh->nlmsg_flags & NLM_F_CREATE)) { 1808 if (ifm->ifi_index == 0 && tb[IFLA_GROUP]) 1809 return rtnl_group_changelink(net, 1810 nla_get_u32(tb[IFLA_GROUP]), 1811 ifm, tb); 1812 return -ENODEV; 1813 } 1814 |
1815 if (ifm->ifi_index) 1816 return -EOPNOTSUPP; | |
1817 if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO]) 1818 return -EOPNOTSUPP; 1819 1820 if (!ops) { 1821#ifdef CONFIG_MODULES 1822 if (kind[0]) { 1823 __rtnl_unlock(); 1824 request_module("rtnl-link-%s", kind); --- 9 unchanged lines hidden (view full) --- 1834 if (!ifname[0]) 1835 snprintf(ifname, IFNAMSIZ, "%s%%d", ops->kind); 1836 1837 dest_net = rtnl_link_get_net(net, tb); 1838 if (IS_ERR(dest_net)) 1839 return PTR_ERR(dest_net); 1840 1841 dev = rtnl_create_link(net, dest_net, ifname, ops, tb); | 1815 if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO]) 1816 return -EOPNOTSUPP; 1817 1818 if (!ops) { 1819#ifdef CONFIG_MODULES 1820 if (kind[0]) { 1821 __rtnl_unlock(); 1822 request_module("rtnl-link-%s", kind); --- 9 unchanged lines hidden (view full) --- 1832 if (!ifname[0]) 1833 snprintf(ifname, IFNAMSIZ, "%s%%d", ops->kind); 1834 1835 dest_net = rtnl_link_get_net(net, tb); 1836 if (IS_ERR(dest_net)) 1837 return PTR_ERR(dest_net); 1838 1839 dev = rtnl_create_link(net, dest_net, ifname, ops, tb); |
1842 1843 if (IS_ERR(dev)) | 1840 if (IS_ERR(dev)) { |
1844 err = PTR_ERR(dev); | 1841 err = PTR_ERR(dev); |
1845 else if (ops->newlink) | 1842 goto out; 1843 } 1844 1845 dev->ifindex = ifm->ifi_index; 1846 1847 if (ops->newlink) |
1846 err = ops->newlink(net, dev, tb, data); 1847 else 1848 err = register_netdevice(dev); 1849 1850 if (err < 0 && !IS_ERR(dev)) 1851 free_netdev(dev); 1852 if (err < 0) 1853 goto out; --- 580 unchanged lines hidden --- | 1848 err = ops->newlink(net, dev, tb, data); 1849 else 1850 err = register_netdevice(dev); 1851 1852 if (err < 0 && !IS_ERR(dev)) 1853 free_netdev(dev); 1854 if (err < 0) 1855 goto out; --- 580 unchanged lines hidden --- |