linux/drivers/net/bonding
dingtianhong 6b6c526147 bonding: remove bond read lock for bond_mii_monitor()
The bond slave list may change when the monitor is running, the slave list is no longer
protected by bond->lock, only protected by rtnl lock(), so we have 3 ways to modify it:
1.add bond_master_upper_dev_link() and bond_upper_dev_unlink() in bond->lock, but it is unsafe
to call call_netdevice_notifiers() in write lock.
2.remove unused bond->lock for monitor function, only use the existing rtnl lock().
3.use rcu_read_lock() to protect it, of course, it will transform bond_for_each_slave to
bond_for_each_slave_rcu() and performance is better, but in slow path, it is ignored.
so I remove the bond->lock and move the rtnl lock to protect the whole monitor function.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-10-27 16:36:28 -04:00
..
bond_3ad.c bonding: use RCU protection for 3ad xmit path 2013-10-17 15:32:03 -04:00
bond_3ad.h bonding: fix multiple 3ad mode sysfs race conditions 2013-05-19 23:25:49 -07:00
bond_alb.c bonding: use RCU protection for alb xmit path 2013-10-17 15:32:03 -04:00
bond_alb.h bonding: rework rlb_next_rx_slave() to use bond_for_each_slave() 2013-09-26 16:02:05 -04:00
bond_debugfs.c bonding: delete migrated IP addresses from the rlb hash table 2012-11-30 12:07:27 -05:00
bond_main.c bonding: remove bond read lock for bond_mii_monitor() 2013-10-27 16:36:28 -04:00
bond_netlink.c bonding: Remove __exit tag from bond_netlink_fini(). 2013-10-19 19:09:18 -04:00
bond_options.c bonding: move active_slave getting into separate function 2013-10-19 18:58:45 -04:00
bond_procfs.c bonding: don't use bond_next_slave() in bond_info_seq_next() 2013-09-28 15:28:06 -07:00
bond_sysfs.c bonding: move active_slave getting into separate function 2013-10-19 18:58:45 -04:00
bonding.h bonding: move active_slave getting into separate function 2013-10-19 18:58:45 -04:00
Makefile bonding: move mode setting into separate function 2013-10-19 18:58:45 -04:00