Lines Matching refs:wdev

21 	struct wireless_dev *wdev = dev->ieee80211_ptr;  in __cfg80211_ibss_joined()  local
27 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in __cfg80211_ibss_joined()
30 if (!wdev->ssid_len) in __cfg80211_ibss_joined()
33 bss = cfg80211_get_bss(wdev->wiphy, channel, bssid, NULL, 0, in __cfg80211_ibss_joined()
39 if (wdev->current_bss) { in __cfg80211_ibss_joined()
40 cfg80211_unhold_bss(wdev->current_bss); in __cfg80211_ibss_joined()
41 cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); in __cfg80211_ibss_joined()
45 wdev->current_bss = bss_from_pub(bss); in __cfg80211_ibss_joined()
47 if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP)) in __cfg80211_ibss_joined()
48 cfg80211_upload_connect_keys(wdev); in __cfg80211_ibss_joined()
50 nl80211_send_ibss_bssid(wiphy_to_rdev(wdev->wiphy), dev, bssid, in __cfg80211_ibss_joined()
62 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_joined() local
63 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_ibss_joined()
80 spin_lock_irqsave(&wdev->event_lock, flags); in cfg80211_ibss_joined()
81 list_add_tail(&ev->list, &wdev->event_list); in cfg80211_ibss_joined()
82 spin_unlock_irqrestore(&wdev->event_lock, flags); in cfg80211_ibss_joined()
92 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_join_ibss() local
96 ASSERT_WDEV_LOCK(wdev); in __cfg80211_join_ibss()
98 if (wdev->ssid_len) in __cfg80211_join_ibss()
123 if (WARN_ON(wdev->connect_keys)) in __cfg80211_join_ibss()
124 kzfree(wdev->connect_keys); in __cfg80211_join_ibss()
125 wdev->connect_keys = connkeys; in __cfg80211_join_ibss()
127 wdev->ibss_fixed = params->channel_fixed; in __cfg80211_join_ibss()
128 wdev->ibss_dfs_possible = params->userspace_handles_dfs; in __cfg80211_join_ibss()
129 wdev->chandef = params->chandef; in __cfg80211_join_ibss()
136 wdev->wext.ibss.chandef = params->chandef; in __cfg80211_join_ibss()
140 wdev->connect_keys = NULL; in __cfg80211_join_ibss()
144 memcpy(wdev->ssid, params->ssid, params->ssid_len); in __cfg80211_join_ibss()
145 wdev->ssid_len = params->ssid_len; in __cfg80211_join_ibss()
152 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_clear_ibss() local
153 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in __cfg80211_clear_ibss()
156 ASSERT_WDEV_LOCK(wdev); in __cfg80211_clear_ibss()
158 kzfree(wdev->connect_keys); in __cfg80211_clear_ibss()
159 wdev->connect_keys = NULL; in __cfg80211_clear_ibss()
171 if (wdev->current_bss) { in __cfg80211_clear_ibss()
172 cfg80211_unhold_bss(wdev->current_bss); in __cfg80211_clear_ibss()
173 cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); in __cfg80211_clear_ibss()
176 wdev->current_bss = NULL; in __cfg80211_clear_ibss()
177 wdev->ssid_len = 0; in __cfg80211_clear_ibss()
178 memset(&wdev->chandef, 0, sizeof(wdev->chandef)); in __cfg80211_clear_ibss()
181 wdev->wext.ibss.ssid_len = 0; in __cfg80211_clear_ibss()
188 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_clear_ibss() local
190 wdev_lock(wdev); in cfg80211_clear_ibss()
192 wdev_unlock(wdev); in cfg80211_clear_ibss()
198 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_leave_ibss() local
201 ASSERT_WDEV_LOCK(wdev); in __cfg80211_leave_ibss()
203 if (!wdev->ssid_len) in __cfg80211_leave_ibss()
211 wdev->conn_owner_nlportid = 0; in __cfg80211_leave_ibss()
220 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_leave_ibss() local
223 wdev_lock(wdev); in cfg80211_leave_ibss()
225 wdev_unlock(wdev); in cfg80211_leave_ibss()
232 struct wireless_dev *wdev) in cfg80211_ibss_wext_join() argument
238 ASSERT_WDEV_LOCK(wdev); in cfg80211_ibss_wext_join()
240 if (!wdev->wext.ibss.beacon_interval) in cfg80211_ibss_wext_join()
241 wdev->wext.ibss.beacon_interval = 100; in cfg80211_ibss_wext_join()
244 if (!wdev->wext.ibss.chandef.chan) { in cfg80211_ibss_wext_join()
272 cfg80211_chandef_create(&wdev->wext.ibss.chandef, new_chan, in cfg80211_ibss_wext_join()
277 if (!wdev->wext.ibss.ssid_len) in cfg80211_ibss_wext_join()
280 if (!netif_running(wdev->netdev)) in cfg80211_ibss_wext_join()
283 if (wdev->wext.keys) in cfg80211_ibss_wext_join()
284 wdev->wext.keys->def = wdev->wext.default_key; in cfg80211_ibss_wext_join()
286 wdev->wext.ibss.privacy = wdev->wext.default_key != -1; in cfg80211_ibss_wext_join()
288 if (wdev->wext.keys && wdev->wext.keys->def != -1) { in cfg80211_ibss_wext_join()
289 ck = kmemdup(wdev->wext.keys, sizeof(*ck), GFP_KERNEL); in cfg80211_ibss_wext_join()
295 err = __cfg80211_join_ibss(rdev, wdev->netdev, in cfg80211_ibss_wext_join()
296 &wdev->wext.ibss, ck); in cfg80211_ibss_wext_join()
307 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_siwfreq() local
308 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_ibss_wext_siwfreq()
313 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_siwfreq()
324 chan = ieee80211_get_channel(wdev->wiphy, freq); in cfg80211_ibss_wext_siwfreq()
332 if (wdev->wext.ibss.chandef.chan == chan) in cfg80211_ibss_wext_siwfreq()
335 wdev_lock(wdev); in cfg80211_ibss_wext_siwfreq()
337 if (wdev->ssid_len) in cfg80211_ibss_wext_siwfreq()
339 wdev_unlock(wdev); in cfg80211_ibss_wext_siwfreq()
345 cfg80211_chandef_create(&wdev->wext.ibss.chandef, chan, in cfg80211_ibss_wext_siwfreq()
347 wdev->wext.ibss.channel_fixed = true; in cfg80211_ibss_wext_siwfreq()
350 wdev->wext.ibss.channel_fixed = false; in cfg80211_ibss_wext_siwfreq()
353 wdev_lock(wdev); in cfg80211_ibss_wext_siwfreq()
354 err = cfg80211_ibss_wext_join(rdev, wdev); in cfg80211_ibss_wext_siwfreq()
355 wdev_unlock(wdev); in cfg80211_ibss_wext_siwfreq()
364 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_giwfreq() local
368 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_giwfreq()
371 wdev_lock(wdev); in cfg80211_ibss_wext_giwfreq()
372 if (wdev->current_bss) in cfg80211_ibss_wext_giwfreq()
373 chan = wdev->current_bss->pub.channel; in cfg80211_ibss_wext_giwfreq()
374 else if (wdev->wext.ibss.chandef.chan) in cfg80211_ibss_wext_giwfreq()
375 chan = wdev->wext.ibss.chandef.chan; in cfg80211_ibss_wext_giwfreq()
376 wdev_unlock(wdev); in cfg80211_ibss_wext_giwfreq()
392 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_siwessid() local
393 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_ibss_wext_siwessid()
398 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_siwessid()
404 wdev_lock(wdev); in cfg80211_ibss_wext_siwessid()
406 if (wdev->ssid_len) in cfg80211_ibss_wext_siwessid()
408 wdev_unlock(wdev); in cfg80211_ibss_wext_siwessid()
417 memcpy(wdev->ssid, ssid, len); in cfg80211_ibss_wext_siwessid()
418 wdev->wext.ibss.ssid = wdev->ssid; in cfg80211_ibss_wext_siwessid()
419 wdev->wext.ibss.ssid_len = len; in cfg80211_ibss_wext_siwessid()
421 wdev_lock(wdev); in cfg80211_ibss_wext_siwessid()
422 err = cfg80211_ibss_wext_join(rdev, wdev); in cfg80211_ibss_wext_siwessid()
423 wdev_unlock(wdev); in cfg80211_ibss_wext_siwessid()
432 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_giwessid() local
435 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_giwessid()
440 wdev_lock(wdev); in cfg80211_ibss_wext_giwessid()
441 if (wdev->ssid_len) { in cfg80211_ibss_wext_giwessid()
443 data->length = wdev->ssid_len; in cfg80211_ibss_wext_giwessid()
444 memcpy(ssid, wdev->ssid, data->length); in cfg80211_ibss_wext_giwessid()
445 } else if (wdev->wext.ibss.ssid && wdev->wext.ibss.ssid_len) { in cfg80211_ibss_wext_giwessid()
447 data->length = wdev->wext.ibss.ssid_len; in cfg80211_ibss_wext_giwessid()
448 memcpy(ssid, wdev->wext.ibss.ssid, data->length); in cfg80211_ibss_wext_giwessid()
450 wdev_unlock(wdev); in cfg80211_ibss_wext_giwessid()
459 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_siwap() local
460 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_ibss_wext_siwap()
465 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_siwap()
482 if (!bssid && !wdev->wext.ibss.bssid) in cfg80211_ibss_wext_siwap()
486 if (wdev->wext.ibss.bssid && bssid && in cfg80211_ibss_wext_siwap()
487 ether_addr_equal(bssid, wdev->wext.ibss.bssid)) in cfg80211_ibss_wext_siwap()
490 wdev_lock(wdev); in cfg80211_ibss_wext_siwap()
492 if (wdev->ssid_len) in cfg80211_ibss_wext_siwap()
494 wdev_unlock(wdev); in cfg80211_ibss_wext_siwap()
500 memcpy(wdev->wext.bssid, bssid, ETH_ALEN); in cfg80211_ibss_wext_siwap()
501 wdev->wext.ibss.bssid = wdev->wext.bssid; in cfg80211_ibss_wext_siwap()
503 wdev->wext.ibss.bssid = NULL; in cfg80211_ibss_wext_siwap()
505 wdev_lock(wdev); in cfg80211_ibss_wext_siwap()
506 err = cfg80211_ibss_wext_join(rdev, wdev); in cfg80211_ibss_wext_siwap()
507 wdev_unlock(wdev); in cfg80211_ibss_wext_siwap()
516 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_ibss_wext_giwap() local
519 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in cfg80211_ibss_wext_giwap()
524 wdev_lock(wdev); in cfg80211_ibss_wext_giwap()
525 if (wdev->current_bss) in cfg80211_ibss_wext_giwap()
526 memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN); in cfg80211_ibss_wext_giwap()
527 else if (wdev->wext.ibss.bssid) in cfg80211_ibss_wext_giwap()
528 memcpy(ap_addr->sa_data, wdev->wext.ibss.bssid, ETH_ALEN); in cfg80211_ibss_wext_giwap()
532 wdev_unlock(wdev); in cfg80211_ibss_wext_giwap()