Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 327395
b: refs/heads/master
c: 9c7dafb
h: refs/heads/master
i:
  327393: 4052030
  327391: 3ceb893
v: v3
  • Loading branch information
Pavel Emelyanov authored and David S. Miller committed Aug 9, 2012
1 parent 68f52a1 commit 99aa985
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b14f243a42c7aa43de71f878641acd003f223022
refs/heads/master: 9c7dafbfab1554705f85523fead578aa1a3d338c
7 changes: 6 additions & 1 deletion trunk/net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -5579,7 +5579,12 @@ int register_netdevice(struct net_device *dev)
}
}

dev->ifindex = dev_new_index(net);
ret = -EBUSY;
if (!dev->ifindex)
dev->ifindex = dev_new_index(net);
else if (__dev_get_by_index(net, dev->ifindex))
goto err_uninit;

if (dev->iflink == -1)
dev->iflink = dev->ifindex;

Expand Down
12 changes: 7 additions & 5 deletions trunk/net/core/rtnetlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -1812,8 +1812,6 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
return -ENODEV;
}

if (ifm->ifi_index)
return -EOPNOTSUPP;
if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO])
return -EOPNOTSUPP;

Expand All @@ -1839,10 +1837,14 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
return PTR_ERR(dest_net);

dev = rtnl_create_link(net, dest_net, ifname, ops, tb);

if (IS_ERR(dev))
if (IS_ERR(dev)) {
err = PTR_ERR(dev);
else if (ops->newlink)
goto out;
}

dev->ifindex = ifm->ifi_index;

if (ops->newlink)
err = ops->newlink(net, dev, tb, data);
else
err = register_netdevice(dev);
Expand Down

0 comments on commit 99aa985

Please sign in to comment.