initial import (Boeing r1752, NRL r878)
This commit is contained in:
commit
f8f46d28be
394 changed files with 99738 additions and 0 deletions
51
kernel/core-kernel-3.0/patches/00-linux-3.0.ifindex.patch
Normal file
51
kernel/core-kernel-3.0/patches/00-linux-3.0.ifindex.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
commit 7da7dfcb787d77929c15d5b7127c816ee16f1ede
|
||||
Author: Tom Goff <thomas.goff@boeing.com>
|
||||
Date: Fri Dec 16 17:39:00 2011 -0800
|
||||
|
||||
Make network device ifindex sequential per network namespace.
|
||||
|
||||
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
|
||||
index 3bb6fa0..2fd53da 100644
|
||||
--- a/include/net/net_namespace.h
|
||||
+++ b/include/net/net_namespace.h
|
||||
@@ -62,6 +62,8 @@ struct net {
|
||||
struct sock *rtnl; /* rtnetlink socket */
|
||||
struct sock *genl_sock;
|
||||
|
||||
+ int ifindex;
|
||||
+
|
||||
struct list_head dev_base_head;
|
||||
struct hlist_head *dev_name_head;
|
||||
struct hlist_head *dev_index_head;
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index 6ba50a1..ba95aa5 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -5260,12 +5260,11 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
|
||||
*/
|
||||
static int dev_new_index(struct net *net)
|
||||
{
|
||||
- static int ifindex;
|
||||
for (;;) {
|
||||
- if (++ifindex <= 0)
|
||||
- ifindex = 1;
|
||||
- if (!__dev_get_by_index(net, ifindex))
|
||||
- return ifindex;
|
||||
+ if (++net->ifindex <= 0)
|
||||
+ net->ifindex = 1;
|
||||
+ if (!__dev_get_by_index(net, net->ifindex))
|
||||
+ return net->ifindex;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6277,8 +6276,8 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
||||
/* Actually switch the network namespace */
|
||||
dev_net_set(dev, net);
|
||||
|
||||
- /* If there is an ifindex conflict assign a new one */
|
||||
- if (__dev_get_by_index(net, dev->ifindex)) {
|
||||
+ /* Assign a new ifindex */
|
||||
+ {
|
||||
int iflink = (dev->iflink == dev->ifindex);
|
||||
dev->ifindex = dev_new_index(net);
|
||||
if (iflink)
|
Loading…
Add table
Add a link
Reference in a new issue