|
@@ -411,14 +411,14 @@ static int nl80211_get_wiphy(struct sk_buff *skb, struct genl_info *info)
|
|
|
if (nl80211_send_wiphy(msg, info->snd_pid, info->snd_seq, 0, dev) < 0)
|
|
|
goto out_free;
|
|
|
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
|
|
|
return genlmsg_unicast(msg, info->snd_pid);
|
|
|
|
|
|
out_free:
|
|
|
nlmsg_free(msg);
|
|
|
out_err:
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
return -ENOBUFS;
|
|
|
}
|
|
|
|
|
@@ -737,7 +737,7 @@ static int nl80211_get_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
goto out_free;
|
|
|
|
|
|
dev_put(netdev);
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
|
|
|
return genlmsg_unicast(msg, info->snd_pid);
|
|
|
|
|
@@ -745,7 +745,7 @@ static int nl80211_get_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
nlmsg_free(msg);
|
|
|
out_err:
|
|
|
dev_put(netdev);
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
return -ENOBUFS;
|
|
|
}
|
|
|
|
|
@@ -853,7 +853,7 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
|
|
|
unlock:
|
|
|
dev_put(dev);
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
|
return err;
|
|
@@ -906,7 +906,7 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
type, err ? NULL : &flags, ¶ms);
|
|
|
|
|
|
unlock:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
|
return err;
|
|
@@ -934,7 +934,7 @@ static int nl80211_del_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->del_virtual_intf(&drv->wiphy, ifindex);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
|
return err;
|
|
@@ -1037,7 +1037,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = -ENOBUFS;
|
|
|
nlmsg_free(msg);
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1097,7 +1097,7 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
#endif
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
|
|
|
unlock_rtnl:
|
|
@@ -1163,7 +1163,7 @@ static int nl80211_new_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->add_key(&drv->wiphy, dev, key_idx, mac_addr, ¶ms);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1211,7 +1211,7 @@ static int nl80211_del_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
#endif
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
|
|
|
unlock_rtnl:
|
|
@@ -1306,7 +1306,7 @@ static int nl80211_addset_beacon(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = call(&drv->wiphy, dev, ¶ms);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1338,7 +1338,7 @@ static int nl80211_del_beacon(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->del_beacon(&drv->wiphy, dev);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1572,7 +1572,7 @@ static int nl80211_dump_station(struct sk_buff *skb,
|
|
|
cb->args[1] = sta_idx;
|
|
|
err = skb->len;
|
|
|
out_err:
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
|
|
|
@@ -1624,7 +1624,7 @@ static int nl80211_get_station(struct sk_buff *skb, struct genl_info *info)
|
|
|
out_free:
|
|
|
nlmsg_free(msg);
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1760,7 +1760,7 @@ static int nl80211_set_station(struct sk_buff *skb, struct genl_info *info)
|
|
|
out:
|
|
|
if (params.vlan)
|
|
|
dev_put(params.vlan);
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1865,7 +1865,7 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info)
|
|
|
out:
|
|
|
if (params.vlan)
|
|
|
dev_put(params.vlan);
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -1904,7 +1904,7 @@ static int nl80211_del_station(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->del_station(&drv->wiphy, dev, mac_addr);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2035,7 +2035,7 @@ static int nl80211_dump_mpath(struct sk_buff *skb,
|
|
|
cb->args[1] = path_idx;
|
|
|
err = skb->len;
|
|
|
out_err:
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
|
|
|
@@ -2093,7 +2093,7 @@ static int nl80211_get_mpath(struct sk_buff *skb, struct genl_info *info)
|
|
|
out_free:
|
|
|
nlmsg_free(msg);
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2142,7 +2142,7 @@ static int nl80211_set_mpath(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->change_mpath(&drv->wiphy, dev, dst, next_hop);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2190,7 +2190,7 @@ static int nl80211_new_mpath(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->add_mpath(&drv->wiphy, dev, dst, next_hop);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2222,7 +2222,7 @@ static int nl80211_del_mpath(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->del_mpath(&drv->wiphy, dev, dst);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2278,7 +2278,7 @@ static int nl80211_set_bss(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->change_bss(&drv->wiphy, dev, ¶ms);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2444,7 +2444,7 @@ static int nl80211_get_mesh_params(struct sk_buff *skb,
|
|
|
err = -EMSGSIZE;
|
|
|
out:
|
|
|
/* Cleanup */
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2550,7 +2550,7 @@ static int nl80211_set_mesh_params(struct sk_buff *skb, struct genl_info *info)
|
|
|
|
|
|
out:
|
|
|
/* cleanup */
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -2890,7 +2890,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
|
|
|
kfree(request);
|
|
|
}
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
out_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3007,7 +3007,7 @@ static int nl80211_dump_scan(struct sk_buff *skb,
|
|
|
|
|
|
cb->args[1] = idx;
|
|
|
err = skb->len;
|
|
|
- cfg80211_put_dev(dev);
|
|
|
+ cfg80211_unlock_rdev(dev);
|
|
|
out_put_netdev:
|
|
|
dev_put(netdev);
|
|
|
|
|
@@ -3112,7 +3112,7 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info)
|
|
|
ssid, ssid_len, ie, ie_len);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3259,7 +3259,7 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
|
|
|
&crypto);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(rdev);
|
|
|
+ cfg80211_unlock_rdev(rdev);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3321,7 +3321,7 @@ static int nl80211_deauthenticate(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_mlme_deauth(drv, dev, bssid, ie, ie_len, reason_code);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3383,7 +3383,7 @@ static int nl80211_disassociate(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_mlme_disassoc(drv, dev, bssid, ie, ie_len, reason_code);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3464,7 +3464,7 @@ static int nl80211_join_ibss(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_join_ibss(drv, dev, &ibss);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3501,7 +3501,7 @@ static int nl80211_leave_ibss(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_leave_ibss(drv, dev, false);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3538,7 +3538,7 @@ static int nl80211_testmode_do(struct sk_buff *skb, struct genl_info *info)
|
|
|
rdev->testmode_info = NULL;
|
|
|
}
|
|
|
|
|
|
- cfg80211_put_dev(rdev);
|
|
|
+ cfg80211_unlock_rdev(rdev);
|
|
|
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3707,7 +3707,7 @@ static int nl80211_connect(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_connect(drv, dev, &connect);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|
|
@@ -3748,7 +3748,7 @@ static int nl80211_disconnect(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = cfg80211_disconnect(drv, dev, reason, true);
|
|
|
|
|
|
out:
|
|
|
- cfg80211_put_dev(drv);
|
|
|
+ cfg80211_unlock_rdev(drv);
|
|
|
dev_put(dev);
|
|
|
unlock_rtnl:
|
|
|
rtnl_unlock();
|