OSDN Git Service

bonding: fix __get_first_agg RCU usage
authorVeaceslav Falico <vfalico@redhat.com>
Fri, 10 Jan 2014 10:59:44 +0000 (11:59 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Jan 2014 06:22:27 +0000 (22:22 -0800)
commit768b954922e69a92a363bd4041cb93040ae4e9cf
treea6de632160b5525aaebc9e462a7790c1b41d932f
parentc1bc9644ecd1f663f918d42b33b41a508683b0ee
bonding: fix __get_first_agg RCU usage

Currently, the RCU read lock usage is just wrong - it gets the slave struct
under RCU and continues to use it when RCU lock is released.

However, it's still safe to do this cause we didn't need the
rcu_read_lock() initially - all of the __get_first_agg() callers are either
holding RCU read lock or the RTNL lock, so that we can't sync while in it.

Fixes: be79bd048 ("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