summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Matyukevich2019-04-09 09:35:08 +0200
committerKalle Valo2019-04-26 13:53:12 +0200
commit4f87d486faf194ba58efaef8192a71e9ffec852e (patch)
treef8cf754ffd7583175200fbf3ffbc87431f682da6
parentwlcore: simplify/fix/optimize reg_ch_conf_pending operations (diff)
downloadkernel-qcow2-linux-4f87d486faf194ba58efaef8192a71e9ffec852e.tar.gz
kernel-qcow2-linux-4f87d486faf194ba58efaef8192a71e9ffec852e.tar.xz
kernel-qcow2-linux-4f87d486faf194ba58efaef8192a71e9ffec852e.zip
qtnfmac: handle channel switch events for connected stations only
Channel switch events from firmware should be processed only when STA is already connected to BSS. On connect this notification is not needed since full BSS info will be supplied by cfg80211_connect_result. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/event.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 6c1b886339ac..b57c8c18a8d0 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -493,14 +493,20 @@ qtnf_event_handle_freq_change(struct qtnf_wmac *mac,
for (i = 0; i < QTNF_MAX_INTF; i++) {
vif = &mac->iflist[i];
+
if (vif->wdev.iftype == NL80211_IFTYPE_UNSPECIFIED)
continue;
- if (vif->netdev) {
- mutex_lock(&vif->wdev.mtx);
- cfg80211_ch_switch_notify(vif->netdev, &chandef);
- mutex_unlock(&vif->wdev.mtx);
- }
+ if (vif->wdev.iftype == NL80211_IFTYPE_STATION &&
+ !vif->wdev.current_bss)
+ continue;
+
+ if (!vif->netdev)
+ continue;
+
+ mutex_lock(&vif->wdev.mtx);
+ cfg80211_ch_switch_notify(vif->netdev, &chandef);
+ mutex_unlock(&vif->wdev.mtx);
}
return 0;