Lines Matching defs:wdev
1007 void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
1009 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
1010 struct net_device *dev = wdev->netdev;
1013 if (!wdev->connect_keys)
1017 if (!wdev->connect_keys->params[i].cipher)
1020 &wdev->connect_keys->params[i])) {
1024 if (wdev->connect_keys->def == i &&
1031 kfree_sensitive(wdev->connect_keys);
1032 wdev->connect_keys = NULL;
1035 void cfg80211_process_wdev_events(struct wireless_dev *wdev)
1040 spin_lock_irqsave(&wdev->event_lock, flags);
1041 while (!list_empty(&wdev->event_list)) {
1042 ev = list_first_entry(&wdev->event_list,
1045 spin_unlock_irqrestore(&wdev->event_lock, flags);
1047 wdev_lock(wdev);
1051 wdev->netdev,
1056 __cfg80211_roamed(wdev, &ev->rm);
1059 __cfg80211_disconnected(wdev->netdev,
1065 __cfg80211_ibss_joined(wdev->netdev, ev->ij.bssid,
1069 __cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev);
1072 __cfg80211_port_authorized(wdev, ev->pa.bssid,
1077 wdev_unlock(wdev);
1081 spin_lock_irqsave(&wdev->event_lock, flags);
1083 spin_unlock_irqrestore(&wdev->event_lock, flags);
1088 struct wireless_dev *wdev;
1092 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list)
1093 cfg80211_process_wdev_events(wdev);
2132 static int cfg80211_wdev_bi(struct wireless_dev *wdev)
2134 switch (wdev->iftype) {
2137 WARN_ON(wdev->valid_links);
2138 return wdev->links[0].ap.beacon_interval;
2140 return wdev->u.mesh.beacon_interval;
2142 return wdev->u.ibss.beacon_interval;
2154 struct wireless_dev *wdev;
2159 list_for_each_entry(wdev, &wiphy->wdev_list, list) {
2163 if (wdev->valid_links)
2166 wdev_bi = cfg80211_wdev_bi(wdev);
2395 struct wireless_dev *wdev;
2397 wdev = dev->ieee80211_ptr;
2398 if (!wdev)
2401 rdev = wiphy_to_rdev(wdev->wiphy);
2646 void cfg80211_remove_link(struct wireless_dev *wdev, unsigned int link_id)
2648 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
2650 ASSERT_WDEV_LOCK(wdev);
2652 switch (wdev->iftype) {
2655 __cfg80211_stop_ap(rdev, wdev->netdev, link_id, true);
2662 wdev->valid_links &= ~BIT(link_id);
2664 rdev_del_intf_link(rdev, wdev, link_id);
2666 eth_zero_addr(wdev->links[link_id].addr);
2669 void cfg80211_remove_links(struct wireless_dev *wdev)
2677 if (wdev->iftype != NL80211_IFTYPE_AP)
2680 wdev_lock(wdev);
2681 if (wdev->valid_links) {
2682 for_each_valid_link(wdev, link_id)
2683 cfg80211_remove_link(wdev, link_id);
2685 wdev_unlock(wdev);
2689 struct wireless_dev *wdev)
2691 cfg80211_remove_links(wdev);
2693 return rdev_del_virtual_intf(rdev, wdev);