From: Anilkumar Kolli <ako...@qti.qualcomm.com>

Do not allow off channel operations like scans/roc when
there are active TDLS sessions.

The Current firmware 10.4-3.5.1-00035 on QCA9888 does not
supports any offchannel operations on active TDLS sessions,
either driver needs to block the offchannel operation requests
or should teardown the TDLS connection.

Signed-off-by: Anilkumar Kolli <ako...@qti.qualcomm.com>
---
 drivers/net/wireless/ath/ath10k/mac.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c 
b/drivers/net/wireless/ath/ath10k/mac.c
index 0f14da73cf64..2f3851e688f4 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -5641,6 +5641,11 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw,
 
        mutex_lock(&ar->conf_mutex);
 
+       if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) {
+               ret = -EBUSY;
+               goto exit;
+       }
+
        spin_lock_bh(&ar->data_lock);
        switch (ar->scan.state) {
        case ATH10K_SCAN_IDLE:
@@ -6477,6 +6482,11 @@ static int ath10k_remain_on_channel(struct ieee80211_hw 
*hw,
 
        mutex_lock(&ar->conf_mutex);
 
+       if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) {
+               ret = -EBUSY;
+               goto exit;
+       }
+
        spin_lock_bh(&ar->data_lock);
        switch (ar->scan.state) {
        case ATH10K_SCAN_IDLE:
-- 
1.7.9.5

Reply via email to