linux/drivers/net
Veaceslav Falico b324187051 bonding: RCUify bond_set_rx_mode()
Currently we rely on rtnl locking in bond_set_rx_mode(), however it's not
always the case:

RTNL: assertion failed at drivers/net/bonding/bond_main.c (3391)
...
 [<ffffffff81651ca5>] dump_stack+0x54/0x74
 [<ffffffffa029e717>] bond_set_rx_mode+0xc7/0xd0 [bonding]
 [<ffffffff81553af7>] __dev_set_rx_mode+0x57/0xa0
 [<ffffffff81557ff8>] __dev_mc_add+0x58/0x70
 [<ffffffff81558020>] dev_mc_add+0x10/0x20
 [<ffffffff8161e26e>] igmp6_group_added+0x18e/0x1d0
 [<ffffffff81186f76>] ? kmem_cache_alloc_trace+0x236/0x260
 [<ffffffff8161f80f>] ipv6_dev_mc_inc+0x29f/0x320
 [<ffffffff8161f9e7>] ipv6_sock_mc_join+0x157/0x260
...

Fix this by using RCU primitives.

Reported-by: Joe Lawrence <joe.lawrence@stratus.com>
Tested-by: Joe Lawrence <joe.lawrence@stratus.com>
CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-09-30 22:26:41 -07:00
..
appletalk
arcnet
bonding bonding: RCUify bond_set_rx_mode() 2013-09-30 22:26:41 -07:00
caif caif: add a sanity check to the tty name 2013-09-04 00:27:27 -04:00
can Merge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next 2013-09-30 19:14:20 -04:00
cris
dsa
ethernet net: skb_is_gso_v6() requires skb_is_gso() 2013-09-30 22:09:00 -07:00
fddi fddi/skfp: Remove extern from function prototypes 2013-09-24 12:54:15 -07:00
hamradio hamradio: baycom: remove deprecated IRQF_DISABLED 2013-09-30 15:08:13 -04:00
hippi
hyperv Drivers: hv: remove HV_DRV_VERSION 2013-08-02 11:34:30 +08:00
ieee802154
irda irda: Remove extern from function prototypes 2013-09-24 12:54:17 -07:00
phy drivers: net: phy: marvell.c: removed checkpatch.pl warnings 2013-09-30 22:15:28 -07:00
plip
ppp ip: generate unique IP identificator if local fragmentation is allowed 2013-09-19 14:11:15 -04:00
slip
team net: team: inherit addr_assign_type along with dev_addr 2013-09-03 20:57:49 -04:00
usb net: qmi_wwan: fix checkpatch warnings 2013-09-30 15:00:35 -04:00
vmxnet3 vmxnet3: Remove extern from function prototypes 2013-09-24 16:37:10 -07:00
wan wan: Remove extern from function prototypes 2013-09-24 16:40:19 -07:00
wimax wimax: Remove extern from function prototypes 2013-09-24 16:46:22 -07:00
wireless rtlwifi: Remove extern from function prototypes 2013-09-24 18:06:51 -07:00
xen-netback xen-netback: improve ring effeciency for guest RX 2013-09-30 19:14:11 -04:00
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c net loopback: Set loopback_dev to NULL when freed 2013-09-17 19:05:13 -04:00
macvlan.c macvlan: Move skb_clone check closer to call 2013-09-11 16:03:12 -04:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-08-26 16:37:08 -04:00
Makefile
mdio.c
mii.c
netconsole.c netconsole: fix a deadlock with rtnl and netconsole's mutex 2013-09-19 14:15:53 -04:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tuntap: correctly handle error in tun_set_iff() 2013-09-12 17:21:42 -04:00
veth.c
virtio_net.c virtio-net: Set RXCSUM feature if GUEST_CSUM is available 2013-09-03 21:36:41 -04:00
vxlan.c net ipv4: Convert ipv4.ip_local_port_range to be per netns v3 2013-09-30 21:59:38 -07:00
xen-netfront.c