summaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index d536b07582f8..f741d8376a46 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -642,11 +642,15 @@ static bool cfg80211_is_all_idle(void)
642 * All devices must be idle as otherwise if you are actively 642 * All devices must be idle as otherwise if you are actively
643 * scanning some new beacon hints could be learned and would 643 * scanning some new beacon hints could be learned and would
644 * count as new regulatory hints. 644 * count as new regulatory hints.
645 * Also if there is any other active beaconing interface we
646 * need not issue a disconnect hint and reset any info such
647 * as chan dfs state, etc.
645 */ 648 */
646 list_for_each_entry(rdev, &cfg80211_rdev_list, list) { 649 list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
647 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { 650 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
648 wdev_lock(wdev); 651 wdev_lock(wdev);
649 if (wdev->conn || wdev->current_bss) 652 if (wdev->conn || wdev->current_bss ||
653 cfg80211_beaconing_iface_active(wdev))
650 is_all_idle = false; 654 is_all_idle = false;
651 wdev_unlock(wdev); 655 wdev_unlock(wdev);
652 } 656 }
@@ -1171,6 +1175,8 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev,
1171 1175
1172 cfg80211_oper_and_ht_capa(&connect->ht_capa_mask, 1176 cfg80211_oper_and_ht_capa(&connect->ht_capa_mask,
1173 rdev->wiphy.ht_capa_mod_mask); 1177 rdev->wiphy.ht_capa_mod_mask);
1178 cfg80211_oper_and_vht_capa(&connect->vht_capa_mask,
1179 rdev->wiphy.vht_capa_mod_mask);
1174 1180
1175 if (connkeys && connkeys->def >= 0) { 1181 if (connkeys && connkeys->def >= 0) {
1176 int idx; 1182 int idx;