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)
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

Simple merge