linux/net
Eric W. Biederman f4618d39a3 [NETNS]: Simplify the network namespace list locking rules.
Denis V. Lunev <den@sw.ru> noticed that the locking rules
for the network namespace list are over complicated and broken.

In particular the current register_netdev_notifier currently
does not take any lock making the for_each_net iteration racy
with network namespace creation and destruction. Oops.

The fact that we need to use for_each_net in rtnl_unlock() when
the rtnetlink support becomes per network namespace makes designing
the proper locking tricky.  In addition we need to be able to call
rtnl_lock() and rtnl_unlock() when we have the net_mutex held.

After thinking about it and looking at the alternatives carefully
it looks like the simplest and most maintainable solution is
to remove net_list_mutex altogether, and to use the rtnl_mutex instead.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 16:52:55 -07:00
..
9p 9p: fix bad error path in conversion routines 2007-08-23 10:25:05 -05:00
802 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
8021q [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
appletalk [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
atm [ATM] net/atm/lec.c: printk warning fix 2007-10-10 16:52:54 -07:00
ax25 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
bluetooth [BLUETOOTH]: Make hidp_setup_input() return int 2007-10-10 16:52:39 -07:00
bridge [ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls 2007-10-10 16:51:17 -07:00
core [NETNS]: Simplify the network namespace list locking rules. 2007-10-10 16:52:55 -07:00
dccp [CCID3]: Remove ifdef surrounding BUG_ON 2007-10-10 16:52:45 -07:00
decnet [NET]: Wrap netdevice hardware header creation. 2007-10-10 16:52:50 -07:00
econet [NET]: Wrap netdevice hardware header creation. 2007-10-10 16:52:50 -07:00
ethernet [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ieee80211 [IEEE80211]: Fix softmac lockdep reports. 2007-10-10 16:52:22 -07:00
ipv4 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ipv6 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ipx [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
irda [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
iucv [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
key [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
lapb [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
llc [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
mac80211 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
netfilter [NET]: Wrap hard_header_parse 2007-10-10 16:52:51 -07:00
netlabel [NETLINK]: Introduce nested and byteorder flag to netlink attribute 2007-10-10 16:49:16 -07:00
netlink [NETLINK]: the temp variable name max is ambiguous 2007-10-10 16:51:25 -07:00
netrom [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
packet [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
rfkill [RFKILL]: Add support for ultrawideband 2007-10-10 16:49:23 -07:00
rose [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
rxrpc [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
sched [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
sctp [SCTP]: Tie ADD-IP and AUTH functionality as required by spec. 2007-10-10 16:51:33 -07:00
sunrpc [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
tipc [NET]: Wrap netdevice hardware header creation. 2007-10-10 16:52:50 -07:00
unix [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
wanrouter [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
wireless [WIRELESS]: Fix Kconfig. 2007-10-10 16:52:52 -07:00
x25 [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
xfrm [NET]: Make the loopback device per network namespace. 2007-10-10 16:52:49 -07:00
compat.c O_CLOEXEC for SCM_RIGHTS 2007-07-16 09:05:45 -07:00
Kconfig [NET]: Add network namespace clone & unshare support. 2007-10-10 16:52:46 -07:00
Makefile 9p: Reorganization of 9p file system code 2007-07-14 15:13:40 -05:00
nonet.c
socket.c [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
sysctl_net.c
TUNABLE