bonding: restructure locking of bond_ab_arp_probe()
authorVeaceslav Falico <vfalico@redhat.com>
Mon, 27 Jan 2014 13:37:32 +0000 (14:37 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jan 2014 21:12:45 +0000 (13:12 -0800)
commitf2ebd477f141bc09b10fb8deb612a4d9b8999bba
tree097d2f21d367ae28eaa40fc5d1ee9519f8932687
parent98b90f26651f9d84cfbb0221c9a3d9863c5bea69
bonding: restructure locking of bond_ab_arp_probe()

Currently we're calling it from under RCU context, however we're using some
functions that require rtnl to be held.

Fix this by restructuring the locking - don't call it under any locks,
aquire rcu_read_lock() if we're sending _only_ (i.e. we have the active
slave present), and use rtnl locking otherwise - if we need to modify
(in)active flags of a slave.

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>
drivers/net/bonding/bond_main.c