diff options
author | Denis V. Lunev <den@openvz.org> | 2007-11-20 01:26:51 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:54:25 -0500 |
commit | 97c53cacf00d1f5aa04adabfebcc806ca8b22b10 (patch) | |
tree | 6b7223df312aa27a5017c4d7c4d1e500a33ed8d8 /net/wireless | |
parent | b854272b3c732316676e9128f7b9e6f1e1ff88b0 (diff) |
[NET]: Make rtnetlink infrastructure network namespace aware (v3)
After this patch none of the netlink callback support anything
except the initial network namespace but the rtnetlink infrastructure
now handles multiple network namespaces.
Changes from v2:
- IPv6 addrlabel processing
Changes from v1:
- no need for special rtnl_unlock handling
- fixed IPv6 ndisc
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/wext.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/wireless/wext.c b/net/wireless/wext.c index 47e80cc2077..db03ed5ce05 100644 --- a/net/wireless/wext.c +++ b/net/wireless/wext.c | |||
@@ -1137,7 +1137,7 @@ static void wireless_nlevent_process(unsigned long data) | |||
1137 | struct sk_buff *skb; | 1137 | struct sk_buff *skb; |
1138 | 1138 | ||
1139 | while ((skb = skb_dequeue(&wireless_nlevent_queue))) | 1139 | while ((skb = skb_dequeue(&wireless_nlevent_queue))) |
1140 | rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); | 1140 | rtnl_notify(skb, &init_net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); |
1141 | } | 1141 | } |
1142 | 1142 | ||
1143 | static DECLARE_TASKLET(wireless_nlevent_tasklet, wireless_nlevent_process, 0); | 1143 | static DECLARE_TASKLET(wireless_nlevent_tasklet, wireless_nlevent_process, 0); |
@@ -1189,6 +1189,9 @@ static void rtmsg_iwinfo(struct net_device *dev, char *event, int event_len) | |||
1189 | struct sk_buff *skb; | 1189 | struct sk_buff *skb; |
1190 | int err; | 1190 | int err; |
1191 | 1191 | ||
1192 | if (dev->nd_net != &init_net) | ||
1193 | return; | ||
1194 | |||
1192 | skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC); | 1195 | skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC); |
1193 | if (!skb) | 1196 | if (!skb) |
1194 | return; | 1197 | return; |