From: Michal Kazior Date: Thu, 28 Aug 2014 10:58:17 +0000 (+0200) Subject: ath10k: stop monitor vdev for sta assoc X-Git-Tag: firefly_0821_release~176^2~2717^2~28^2~90^2~92 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e556f111847f94557ce7d5d9435e183783839f63;p=firefly-linux-kernel-4.4.55.git ath10k: stop monitor vdev for sta assoc This prevents some fw revisions from crashing in many cases when user is trying to run a promiscuous station interface (e.g. sniffing, 4addr bridge). Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo --- diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 8d793f31bbd8..100ed4f0cabd 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -3169,8 +3169,16 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw, } if (changed & BSS_CHANGED_ASSOC) { - if (info->assoc) + if (info->assoc) { + /* Workaround: Make sure monitor vdev is not running + * when associating to prevent some firmware revisions + * (e.g. 10.1 and 10.2) from crashing. + */ + if (ar->monitor_started) + ath10k_monitor_stop(ar); ath10k_bss_assoc(hw, vif, info); + ath10k_monitor_recalc(ar); + } } exit: