diff options
author | nikolay@redhat.com <nikolay@redhat.com> | 2013-09-02 13:51:42 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-04 00:27:25 -0400 |
commit | c48268611a3df84a9250d2fc34ad671cdae43440 (patch) | |
tree | edf1c1429ea903e92f325535b9c72725f78f52ea /drivers/net/bonding | |
parent | 9b7b165ac1adf5169f0ee03d107423ce7f5805d9 (diff) |
bonding: drop read_lock in bond_compute_features
bond_compute_features is always called with RTNL held, so we can safely
drop the read bond->lock.
Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index c5ebdc57948..39e5b1c7ffe 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1116,15 +1116,13 @@ static netdev_features_t bond_fix_features(struct net_device *dev, static void bond_compute_features(struct bonding *bond) { - struct slave *slave; - struct net_device *bond_dev = bond->dev; + unsigned int flags, dst_release_flag = IFF_XMIT_DST_RELEASE; netdev_features_t vlan_features = BOND_VLAN_FEATURES; unsigned short max_hard_header_len = ETH_HLEN; unsigned int gso_max_size = GSO_MAX_SIZE; + struct net_device *bond_dev = bond->dev; u16 gso_max_segs = GSO_MAX_SEGS; - unsigned int flags, dst_release_flag = IFF_XMIT_DST_RELEASE; - - read_lock(&bond->lock); + struct slave *slave; if (list_empty(&bond->slave_list)) goto done; @@ -1150,8 +1148,6 @@ done: flags = bond_dev->priv_flags & ~IFF_XMIT_DST_RELEASE; bond_dev->priv_flags = flags | dst_release_flag; - read_unlock(&bond->lock); - netdev_change_features(bond_dev); } |