diff options
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dst.c | 4 | ||||
-rw-r--r-- | net/core/fib_rules.c | 4 | ||||
-rw-r--r-- | net/core/pktgen.c | 3 | ||||
-rw-r--r-- | net/core/rtnetlink.c | 4 |
4 files changed, 15 insertions, 0 deletions
diff --git a/net/core/dst.c b/net/core/dst.c index c6a05879d58c..32267a16e01e 100644 --- a/net/core/dst.c +++ b/net/core/dst.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/skbuff.h> | 15 | #include <linux/skbuff.h> |
16 | #include <linux/string.h> | 16 | #include <linux/string.h> |
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <net/net_namespace.h> | ||
18 | 19 | ||
19 | #include <net/dst.h> | 20 | #include <net/dst.h> |
20 | 21 | ||
@@ -252,6 +253,9 @@ static int dst_dev_event(struct notifier_block *this, unsigned long event, void | |||
252 | struct net_device *dev = ptr; | 253 | struct net_device *dev = ptr; |
253 | struct dst_entry *dst; | 254 | struct dst_entry *dst; |
254 | 255 | ||
256 | if (dev->nd_net != &init_net) | ||
257 | return NOTIFY_DONE; | ||
258 | |||
255 | switch (event) { | 259 | switch (event) { |
256 | case NETDEV_UNREGISTER: | 260 | case NETDEV_UNREGISTER: |
257 | case NETDEV_DOWN: | 261 | case NETDEV_DOWN: |
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 8c5474e16683..9eabe1ae01dc 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/list.h> | 13 | #include <linux/list.h> |
14 | #include <net/net_namespace.h> | ||
14 | #include <net/fib_rules.h> | 15 | #include <net/fib_rules.h> |
15 | 16 | ||
16 | static LIST_HEAD(rules_ops); | 17 | static LIST_HEAD(rules_ops); |
@@ -596,6 +597,9 @@ static int fib_rules_event(struct notifier_block *this, unsigned long event, | |||
596 | struct net_device *dev = ptr; | 597 | struct net_device *dev = ptr; |
597 | struct fib_rules_ops *ops; | 598 | struct fib_rules_ops *ops; |
598 | 599 | ||
600 | if (dev->nd_net != &init_net) | ||
601 | return NOTIFY_DONE; | ||
602 | |||
599 | ASSERT_RTNL(); | 603 | ASSERT_RTNL(); |
600 | rcu_read_lock(); | 604 | rcu_read_lock(); |
601 | 605 | ||
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 33d7247fb19d..d7c30ce095a1 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -1975,6 +1975,9 @@ static int pktgen_device_event(struct notifier_block *unused, | |||
1975 | { | 1975 | { |
1976 | struct net_device *dev = ptr; | 1976 | struct net_device *dev = ptr; |
1977 | 1977 | ||
1978 | if (dev->nd_net != &init_net) | ||
1979 | return NOTIFY_DONE; | ||
1980 | |||
1978 | /* It is OK that we do not hold the group lock right now, | 1981 | /* It is OK that we do not hold the group lock right now, |
1979 | * as we run under the RTNL lock. | 1982 | * as we run under the RTNL lock. |
1980 | */ | 1983 | */ |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index dca9e80ba574..41859508bedd 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -1286,6 +1286,10 @@ static void rtnetlink_rcv(struct sock *sk, int len) | |||
1286 | static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) | 1286 | static int rtnetlink_event(struct notifier_block *this, unsigned long event, void *ptr) |
1287 | { | 1287 | { |
1288 | struct net_device *dev = ptr; | 1288 | struct net_device *dev = ptr; |
1289 | |||
1290 | if (dev->nd_net != &init_net) | ||
1291 | return NOTIFY_DONE; | ||
1292 | |||
1289 | switch (event) { | 1293 | switch (event) { |
1290 | case NETDEV_UNREGISTER: | 1294 | case NETDEV_UNREGISTER: |
1291 | rtmsg_ifinfo(RTM_DELLINK, dev, ~0U); | 1295 | rtmsg_ifinfo(RTM_DELLINK, dev, ~0U); |