| Index: chromeos/compat-wireless/net/wireless/nl80211.c
|
| diff --git a/chromeos/compat-wireless/net/wireless/nl80211.c b/chromeos/compat-wireless/net/wireless/nl80211.c
|
| index 5b1775c8948fd08fd71e0ab4aae34cd0671327f4..9791978e5f76a5cfefb8d59303aa9f57df1290e9 100644
|
| --- a/chromeos/compat-wireless/net/wireless/nl80211.c
|
| +++ b/chromeos/compat-wireless/net/wireless/nl80211.c
|
| @@ -763,11 +763,13 @@ static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info)
|
|
|
| result = get_rdev_dev_by_info_ifindex(info, &rdev, &netdev);
|
| if (result)
|
| - goto unlock;
|
| + goto unlock_rtnl;
|
|
|
| result = __nl80211_set_channel(rdev, netdev->ieee80211_ptr, info);
|
|
|
| - unlock:
|
| + dev_put(netdev);
|
| + cfg80211_unlock_rdev(rdev);
|
| + unlock_rtnl:
|
| rtnl_unlock();
|
|
|
| return result;
|
| @@ -5002,7 +5004,7 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
|
|
|
| err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev);
|
| if (err)
|
| - goto unlock_rdev;
|
| + goto unlock_rtnl;
|
|
|
| wdev = dev->ieee80211_ptr;
|
|
|
| @@ -5019,9 +5021,10 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
|
| err = rdev->ops->set_cqm_rssi_config(wdev->wiphy, dev,
|
| threshold, hysteresis);
|
|
|
| -unlock_rdev:
|
| + unlock_rdev:
|
| cfg80211_unlock_rdev(rdev);
|
| dev_put(dev);
|
| + unlock_rtnl:
|
| rtnl_unlock();
|
|
|
| return err;
|
|
|