Lines Matching refs:wdev

24 	struct wireless_dev *wdev = dev->ieee80211_ptr;  in cfg80211_rx_assoc_resp()  local
25 struct wiphy *wiphy = wdev->wiphy; in cfg80211_rx_assoc_resp()
40 if (cfg80211_sme_rx_assoc_resp(wdev, status_code)) { in cfg80211_rx_assoc_resp()
54 static void cfg80211_process_auth(struct wireless_dev *wdev, in cfg80211_process_auth() argument
57 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_process_auth()
59 nl80211_send_rx_auth(rdev, wdev->netdev, buf, len, GFP_KERNEL); in cfg80211_process_auth()
60 cfg80211_sme_rx_auth(wdev, buf, len); in cfg80211_process_auth()
63 static void cfg80211_process_deauth(struct wireless_dev *wdev, in cfg80211_process_deauth() argument
66 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_process_deauth()
70 bool from_ap = !ether_addr_equal(mgmt->sa, wdev->netdev->dev_addr); in cfg80211_process_deauth()
72 nl80211_send_deauth(rdev, wdev->netdev, buf, len, GFP_KERNEL); in cfg80211_process_deauth()
74 if (!wdev->current_bss || in cfg80211_process_deauth()
75 !ether_addr_equal(wdev->current_bss->pub.bssid, bssid)) in cfg80211_process_deauth()
78 __cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap); in cfg80211_process_deauth()
79 cfg80211_sme_deauth(wdev); in cfg80211_process_deauth()
82 static void cfg80211_process_disassoc(struct wireless_dev *wdev, in cfg80211_process_disassoc() argument
85 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_process_disassoc()
89 bool from_ap = !ether_addr_equal(mgmt->sa, wdev->netdev->dev_addr); in cfg80211_process_disassoc()
91 nl80211_send_disassoc(rdev, wdev->netdev, buf, len, GFP_KERNEL); in cfg80211_process_disassoc()
93 if (WARN_ON(!wdev->current_bss || in cfg80211_process_disassoc()
94 !ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) in cfg80211_process_disassoc()
97 __cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap); in cfg80211_process_disassoc()
98 cfg80211_sme_disassoc(wdev); in cfg80211_process_disassoc()
103 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_rx_mlme_mgmt() local
106 ASSERT_WDEV_LOCK(wdev); in cfg80211_rx_mlme_mgmt()
114 cfg80211_process_auth(wdev, buf, len); in cfg80211_rx_mlme_mgmt()
116 cfg80211_process_deauth(wdev, buf, len); in cfg80211_rx_mlme_mgmt()
118 cfg80211_process_disassoc(wdev, buf, len); in cfg80211_rx_mlme_mgmt()
124 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_auth_timeout() local
125 struct wiphy *wiphy = wdev->wiphy; in cfg80211_auth_timeout()
131 cfg80211_sme_auth_timeout(wdev); in cfg80211_auth_timeout()
137 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_assoc_timeout() local
138 struct wiphy *wiphy = wdev->wiphy; in cfg80211_assoc_timeout()
144 cfg80211_sme_assoc_timeout(wdev); in cfg80211_assoc_timeout()
153 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_tx_mlme_mgmt() local
156 ASSERT_WDEV_LOCK(wdev); in cfg80211_tx_mlme_mgmt()
164 cfg80211_process_deauth(wdev, buf, len); in cfg80211_tx_mlme_mgmt()
166 cfg80211_process_disassoc(wdev, buf, len); in cfg80211_tx_mlme_mgmt()
208 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_mlme_auth() local
221 ASSERT_WDEV_LOCK(wdev); in cfg80211_mlme_auth()
227 if (wdev->current_bss && in cfg80211_mlme_auth()
228 ether_addr_equal(bssid, wdev->current_bss->pub.bssid)) in cfg80211_mlme_auth()
284 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_mlme_assoc() local
287 ASSERT_WDEV_LOCK(wdev); in cfg80211_mlme_assoc()
289 if (wdev->current_bss && in cfg80211_mlme_assoc()
290 (!req->prev_bssid || !ether_addr_equal(wdev->current_bss->pub.bssid, in cfg80211_mlme_assoc()
319 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_mlme_deauth() local
328 ASSERT_WDEV_LOCK(wdev); in cfg80211_mlme_deauth()
331 (!wdev->current_bss || in cfg80211_mlme_deauth()
332 !ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) in cfg80211_mlme_deauth()
343 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_mlme_disassoc() local
352 ASSERT_WDEV_LOCK(wdev); in cfg80211_mlme_disassoc()
354 if (!wdev->current_bss) in cfg80211_mlme_disassoc()
357 if (ether_addr_equal(wdev->current_bss->pub.bssid, bssid)) in cfg80211_mlme_disassoc()
358 req.bss = &wdev->current_bss->pub; in cfg80211_mlme_disassoc()
367 WARN_ON(wdev->current_bss); in cfg80211_mlme_disassoc()
374 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_mlme_down() local
377 ASSERT_WDEV_LOCK(wdev); in cfg80211_mlme_down()
382 if (!wdev->current_bss) in cfg80211_mlme_down()
385 memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN); in cfg80211_mlme_down()
402 int cfg80211_mlme_register_mgmt(struct wireless_dev *wdev, u32 snd_portid, in cfg80211_mlme_register_mgmt() argument
406 struct wiphy *wiphy = wdev->wiphy; in cfg80211_mlme_register_mgmt()
412 if (!wdev->wiphy->mgmt_stypes) in cfg80211_mlme_register_mgmt()
422 if (!(wdev->wiphy->mgmt_stypes[wdev->iftype].rx & BIT(mgmt_type))) in cfg80211_mlme_register_mgmt()
429 spin_lock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_register_mgmt()
431 list_for_each_entry(reg, &wdev->mgmt_registrations, list) { in cfg80211_mlme_register_mgmt()
452 list_add(&nreg->list, &wdev->mgmt_registrations); in cfg80211_mlme_register_mgmt()
455 rdev_mgmt_frame_register(rdev, wdev, frame_type, true); in cfg80211_mlme_register_mgmt()
458 spin_unlock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_register_mgmt()
463 void cfg80211_mlme_unregister_socket(struct wireless_dev *wdev, u32 nlportid) in cfg80211_mlme_unregister_socket() argument
465 struct wiphy *wiphy = wdev->wiphy; in cfg80211_mlme_unregister_socket()
469 spin_lock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_unregister_socket()
471 list_for_each_entry_safe(reg, tmp, &wdev->mgmt_registrations, list) { in cfg80211_mlme_unregister_socket()
478 rdev_mgmt_frame_register(rdev, wdev, in cfg80211_mlme_unregister_socket()
486 spin_unlock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_unregister_socket()
490 rdev_crit_proto_stop(rdev, wdev); in cfg80211_mlme_unregister_socket()
493 if (nlportid == wdev->ap_unexpected_nlportid) in cfg80211_mlme_unregister_socket()
494 wdev->ap_unexpected_nlportid = 0; in cfg80211_mlme_unregister_socket()
497 void cfg80211_mlme_purge_registrations(struct wireless_dev *wdev) in cfg80211_mlme_purge_registrations() argument
501 spin_lock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_purge_registrations()
503 list_for_each_entry_safe(reg, tmp, &wdev->mgmt_registrations, list) { in cfg80211_mlme_purge_registrations()
508 spin_unlock_bh(&wdev->mgmt_registrations_lock); in cfg80211_mlme_purge_registrations()
512 struct wireless_dev *wdev, in cfg80211_mlme_mgmt_tx() argument
518 if (!wdev->wiphy->mgmt_stypes) in cfg80211_mlme_mgmt_tx()
533 if (!(wdev->wiphy->mgmt_stypes[wdev->iftype].tx & BIT(stype >> 4))) in cfg80211_mlme_mgmt_tx()
540 wdev_lock(wdev); in cfg80211_mlme_mgmt_tx()
542 switch (wdev->iftype) { in cfg80211_mlme_mgmt_tx()
546 if (!wdev->current_bss) { in cfg80211_mlme_mgmt_tx()
551 if (!ether_addr_equal(wdev->current_bss->pub.bssid, in cfg80211_mlme_mgmt_tx()
561 if (wdev->iftype == NL80211_IFTYPE_ADHOC) in cfg80211_mlme_mgmt_tx()
565 if (!ether_addr_equal(wdev->current_bss->pub.bssid, in cfg80211_mlme_mgmt_tx()
574 if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev))) in cfg80211_mlme_mgmt_tx()
596 wdev_unlock(wdev); in cfg80211_mlme_mgmt_tx()
602 if (!ether_addr_equal(mgmt->sa, wdev_address(wdev))) in cfg80211_mlme_mgmt_tx()
606 return rdev_mgmt_tx(rdev, wdev, params, cookie); in cfg80211_mlme_mgmt_tx()
609 bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_mbm, in cfg80211_rx_mgmt() argument
612 struct wiphy *wiphy = wdev->wiphy; in cfg80211_rx_mgmt()
616 &wiphy->mgmt_stypes[wdev->iftype]; in cfg80211_rx_mgmt()
625 trace_cfg80211_rx_mgmt(wdev, freq, sig_mbm); in cfg80211_rx_mgmt()
636 spin_lock_bh(&wdev->mgmt_registrations_lock); in cfg80211_rx_mgmt()
638 list_for_each_entry(reg, &wdev->mgmt_registrations, list) { in cfg80211_rx_mgmt()
651 if (nl80211_send_mgmt(rdev, wdev, reg->nlportid, in cfg80211_rx_mgmt()
660 spin_unlock_bh(&wdev->mgmt_registrations_lock); in cfg80211_rx_mgmt()
755 struct wireless_dev *wdev = netdev->ieee80211_ptr; in cfg80211_cac_event() local
756 struct wiphy *wiphy = wdev->wiphy; in cfg80211_cac_event()
762 if (WARN_ON(!wdev->cac_started)) in cfg80211_cac_event()
765 if (WARN_ON(!wdev->chandef.chan)) in cfg80211_cac_event()
770 timeout = wdev->cac_start_time + in cfg80211_cac_event()
771 msecs_to_jiffies(wdev->cac_time_ms); in cfg80211_cac_event()
781 wdev->cac_started = false; in cfg80211_cac_event()