Message ID | 1384562417-817-12-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c index 91f179d5135c..67d3b2893aa3 100644 --- a/drivers/net/bonding/bond_alb.c +++ b/drivers/net/bonding/bond_alb.c @@ -1667,7 +1667,8 @@ void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave } swap_slave = bond->curr_active_slave; - rcu_assign_pointer(bond->curr_active_slave, new_slave); + /* Both --rcu and visible, so ACCESS_ONCE() is OK. */ + ACCESS_ONCE(bond->curr_active_slave) = new_slave; if (!new_slave || list_empty(&bond->slave_list)) return;