bonding: fix bond_3ad_set_carrier() RCU usage
authorVeaceslav Falico <vfalico@redhat.com>
Fri, 10 Jan 2014 10:59:43 +0000 (11:59 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Jan 2014 06:22:27 +0000 (22:22 -0800)
commitc1bc9644ecd1f663f918d42b33b41a508683b0ee
treed020bd6c841fbd0f368618a3e88db5417d46e3bf
parent853dc21bfe15f545347b5c82aad02735d552110d
bonding: fix bond_3ad_set_carrier() RCU usage

Currently, its usage is just plainly wrong. It first gets a slave under
RCU, and, after releasing the RCU lock, continues to use it - whilst it can
be freed.

Fix this by ensuring that bond_3ad_set_carrier() holds RCU till it uses its
slave (or its agg).

Fixes: be79bd048ab ("bonding: add RCU for bond_3ad_state_machine_handler()")
CC: dingtianhong@huawei.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>
drivers/net/bonding/bond_3ad.c