]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit3bb323b4026fa2a9775406e578dc52c09dae3012
treed020bd6c841fbd0f368618a3e88db5417d46e3bf
parentb77e65c649771f43c517588a2f870c5199fc2a3b
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: 9cde696b00c ("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