Lines Matching defs:wdev

158 	struct wireless_dev *wdev;
164 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
165 if (!wdev->netdev)
167 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
168 err = dev_change_net_namespace(wdev->netdev, net, "wlan%d");
171 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
178 list_for_each_entry_continue_reverse(wdev,
181 if (!wdev->netdev)
183 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
184 err = dev_change_net_namespace(wdev->netdev, net,
187 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
193 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
194 if (!wdev->netdev)
196 nl80211_notify_iface(rdev, wdev, NL80211_CMD_DEL_INTERFACE);
206 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
207 if (!wdev->netdev)
209 nl80211_notify_iface(rdev, wdev, NL80211_CMD_NEW_INTERFACE);
223 struct wireless_dev *wdev)
227 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_P2P_DEVICE))
230 if (!wdev_running(wdev))
233 rdev_stop_p2p_device(rdev, wdev);
234 wdev->is_running = false;
238 if (rdev->scan_req && rdev->scan_req->wdev == wdev) {
248 struct wireless_dev *wdev)
252 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_NAN))
255 if (!wdev_running(wdev))
258 rdev_stop_nan(rdev, wdev);
259 wdev->is_running = false;
267 struct wireless_dev *wdev;
271 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
272 if (wdev->netdev) {
273 dev_close(wdev->netdev);
277 switch (wdev->iftype) {
279 cfg80211_stop_p2p_device(rdev, wdev);
282 cfg80211_stop_nan(rdev, wdev);
328 struct wireless_dev *wdev, *tmp;
332 list_for_each_entry_safe(wdev, tmp, &rdev->wiphy.wdev_list, list) {
333 if (wdev->nl_owner_dead)
334 rdev_del_virtual_intf(rdev, wdev);
1096 void cfg80211_cqm_config_free(struct wireless_dev *wdev)
1098 kfree(wdev->cqm_config);
1099 wdev->cqm_config = NULL;
1102 static void __cfg80211_unregister_wdev(struct wireless_dev *wdev, bool sync)
1104 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
1108 flush_work(&wdev->pmsr_free_wk);
1110 nl80211_notify_iface(rdev, wdev, NL80211_CMD_DEL_INTERFACE);
1112 list_del_rcu(&wdev->list);
1117 cfg80211_mlme_purge_registrations(wdev);
1119 switch (wdev->iftype) {
1121 cfg80211_stop_p2p_device(rdev, wdev);
1124 cfg80211_stop_nan(rdev, wdev);
1131 kfree_sensitive(wdev->wext.keys);
1132 wdev->wext.keys = NULL;
1135 if (wdev->netdev)
1136 flush_work(&wdev->disconnect_wk);
1138 cfg80211_cqm_config_free(wdev);
1141 void cfg80211_unregister_wdev(struct wireless_dev *wdev)
1143 if (WARN_ON(wdev->netdev))
1146 __cfg80211_unregister_wdev(wdev, true);
1165 struct wireless_dev *wdev)
1167 struct net_device *dev = wdev->netdev;
1171 ASSERT_WDEV_LOCK(wdev);
1173 cfg80211_pmsr_wdev_down(wdev);
1175 switch (wdev->iftype) {
1188 kfree(wdev->wext.ie);
1189 wdev->wext.ie = NULL;
1190 wdev->wext.ie_len = 0;
1191 wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
1225 struct wireless_dev *wdev)
1227 wdev_lock(wdev);
1228 __cfg80211_leave(rdev, wdev);
1229 wdev_unlock(wdev);
1232 void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev,
1239 trace_cfg80211_stop_iface(wiphy, wdev);
1247 spin_lock_irqsave(&wdev->event_lock, flags);
1248 list_add_tail(&ev->list, &wdev->event_list);
1249 spin_unlock_irqrestore(&wdev->event_lock, flags);
1254 void cfg80211_init_wdev(struct wireless_dev *wdev)
1256 mutex_init(&wdev->mtx);
1257 INIT_LIST_HEAD(&wdev->event_list);
1258 spin_lock_init(&wdev->event_lock);
1259 INIT_LIST_HEAD(&wdev->mgmt_registrations);
1260 INIT_LIST_HEAD(&wdev->pmsr_list);
1261 spin_lock_init(&wdev->pmsr_lock);
1262 INIT_WORK(&wdev->pmsr_free_wk, cfg80211_pmsr_free_wk);
1265 wdev->wext.default_key = -1;
1266 wdev->wext.default_mgmt_key = -1;
1267 wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
1270 if (wdev->wiphy->flags & WIPHY_FLAG_PS_ON_BY_DEFAULT)
1271 wdev->ps = true;
1273 wdev->ps = false;
1275 wdev->ps_timeout = -1;
1277 if ((wdev->iftype == NL80211_IFTYPE_STATION ||
1278 wdev->iftype == NL80211_IFTYPE_P2P_CLIENT ||
1279 wdev->iftype == NL80211_IFTYPE_ADHOC) && !wdev->use_4addr)
1280 wdev->netdev->priv_flags |= IFF_DONT_BRIDGE;
1282 INIT_WORK(&wdev->disconnect_wk, cfg80211_autodisconnect_wk);
1286 struct wireless_dev *wdev)
1295 if (!wdev->identifier)
1296 wdev->identifier = ++rdev->wdev_id;
1297 list_add_rcu(&wdev->list, &rdev->wiphy.wdev_list);
1300 nl80211_notify_iface(rdev, wdev, NL80211_CMD_NEW_INTERFACE);
1307 struct wireless_dev *wdev = dev->ieee80211_ptr;
1311 if (!wdev)
1314 rdev = wiphy_to_rdev(wdev->wiphy);
1316 WARN_ON(wdev->iftype == NL80211_IFTYPE_UNSPECIFIED);
1321 wdev->netdev = dev;
1325 cfg80211_init_wdev(wdev);
1338 cfg80211_register_wdev(rdev, wdev);
1341 cfg80211_leave(rdev, wdev);
1344 cfg80211_update_iface_num(rdev, wdev->iftype, -1);
1345 if (rdev->scan_req && rdev->scan_req->wdev == wdev) {
1355 if (WARN_ON(pos->dev == wdev->netdev))
1363 cfg80211_update_iface_num(rdev, wdev->iftype, 1);
1364 wdev_lock(wdev);
1365 switch (wdev->iftype) {
1368 cfg80211_ibss_wext_join(rdev, wdev);
1371 cfg80211_mgd_wext_connect(rdev, wdev);
1382 setup.mesh_id = wdev->ssid;
1383 setup.mesh_id_len = wdev->mesh_id_up_len;
1384 if (wdev->mesh_id_up_len)
1394 wdev_unlock(wdev);
1401 if ((wdev->iftype == NL80211_IFTYPE_STATION ||
1402 wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) &&
1404 rdev_set_power_mgmt(rdev, dev, wdev->ps,
1405 wdev->ps_timeout)) {
1407 wdev->ps = false;
1418 if (!list_empty(&wdev->list)) {
1419 __cfg80211_unregister_wdev(wdev, false);
1429 INIT_LIST_HEAD(&wdev->list);
1434 cfg80211_process_wdev_events(wdev);
1436 if (WARN_ON(wdev->current_bss)) {
1437 cfg80211_unhold_bss(wdev->current_bss);
1438 cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
1439 wdev->current_bss = NULL;
1443 if (!cfg80211_iftype_allowed(wdev->wiphy, wdev->iftype,
1444 wdev->use_4addr, 0))