Lines Matching defs:wdev

712 bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev)
716 ASSERT_WDEV_LOCK(wdev);
718 switch (wdev->iftype) {
721 for_each_valid_link(wdev, link) {
722 if (wdev->links[link].ap.beacon_interval)
727 if (wdev->u.ibss.ssid_len)
731 if (wdev->u.mesh.id_len)
752 bool cfg80211_wdev_on_sub_chan(struct wireless_dev *wdev,
758 switch (wdev->iftype) {
761 for_each_valid_link(wdev, link) {
762 if (cfg80211_is_sub_chan(&wdev->links[link].ap.chandef,
768 return cfg80211_is_sub_chan(&wdev->u.ibss.chandef, chan,
771 return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan,
783 struct wireless_dev *wdev;
785 list_for_each_entry(wdev, &wiphy->wdev_list, list) {
786 wdev_lock(wdev);
787 if (!cfg80211_beaconing_iface_active(wdev)) {
788 wdev_unlock(wdev);
792 if (cfg80211_wdev_on_sub_chan(wdev, chan, false)) {
793 wdev_unlock(wdev);
796 wdev_unlock(wdev);
1218 struct wireless_dev *wdev,
1225 for_each_valid_link(wdev, link_id) {
1226 if (wdev->iftype == NL80211_IFTYPE_STATION &&
1227 wdev->links[link_id].client.current_bss)
1228 other_chan = wdev->links[link_id].client.current_bss->pub.channel;
1238 wdev->iftype == NL80211_IFTYPE_P2P_GO &&
1239 wdev->links[link_id].ap.beacon_interval &&
1241 other_chan = wdev->links[link_id].ap.chandef.chan;
1292 struct wireless_dev *wdev;
1321 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
1324 wdev_lock(wdev);
1325 ret = cfg80211_ir_permissive_check_wdev(iftype, wdev, chan);
1326 wdev_unlock(wdev);
1433 struct cfg80211_chan_def *wdev_chandef(struct wireless_dev *wdev,
1441 * easily require the wdev mutex.
1443 if (link_id || wdev->valid_links & BIT(0)) {
1444 ASSERT_WDEV_LOCK(wdev);
1445 WARN_ON(!(wdev->valid_links & BIT(link_id)));
1448 switch (wdev->iftype) {
1450 return &wdev->u.mesh.chandef;
1452 return &wdev->u.ibss.chandef;
1454 return &wdev->u.ocb.chandef;
1457 return &wdev->links[link_id].ap.chandef;