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; |