|
@@ -1976,12 +1976,11 @@ static int __bond_release_one(struct net_device *bond_dev,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ write_unlock_bh(&bond->lock);
|
|
/* unregister rx_handler early so bond_handle_frame wouldn't be called
|
|
/* unregister rx_handler early so bond_handle_frame wouldn't be called
|
|
* for this slave anymore.
|
|
* for this slave anymore.
|
|
*/
|
|
*/
|
|
netdev_rx_handler_unregister(slave_dev);
|
|
netdev_rx_handler_unregister(slave_dev);
|
|
- write_unlock_bh(&bond->lock);
|
|
|
|
- synchronize_net();
|
|
|
|
write_lock_bh(&bond->lock);
|
|
write_lock_bh(&bond->lock);
|
|
|
|
|
|
if (!all && !bond->params.fail_over_mac) {
|
|
if (!all && !bond->params.fail_over_mac) {
|