Active scan is not allowed on radar channel, instead
using passvie scan with more time.

Signed-off-by: Xinming Hu <[email protected]>
---
 drivers/net/wireless/marvell/mwifiex/scan.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/scan.c 
b/drivers/net/wireless/marvell/mwifiex/scan.c
index d7ce7f7..fb1cbaf 100644
--- a/drivers/net/wireless/marvell/mwifiex/scan.c
+++ b/drivers/net/wireless/marvell/mwifiex/scan.c
@@ -482,7 +482,8 @@ enum cipher_suite {
                                scan_chan_list[chan_idx].max_scan_time =
                                        cpu_to_le16((u16) user_scan_in->
                                        chan_list[0].scan_time);
-                       else if (ch->flags & IEEE80211_CHAN_NO_IR)
+                       else if ((ch->flags & IEEE80211_CHAN_NO_IR) ||
+                                (ch->flags & IEEE80211_CHAN_RADAR))
                                scan_chan_list[chan_idx].max_scan_time =
                                        cpu_to_le16(adapter->passive_scan_time);
                        else
@@ -502,10 +503,12 @@ enum cipher_suite {
                        scan_chan_list[chan_idx].chan_scan_mode_bitmap
                                        |= MWIFIEX_DISABLE_CHAN_FILT;
 
-                       if (filtered_scan) {
+                       if (filtered_scan &&
+                           !((ch->flags & IEEE80211_CHAN_NO_IR) ||
+                             (ch->flags & IEEE80211_CHAN_RADAR)))
                                scan_chan_list[chan_idx].max_scan_time =
                                cpu_to_le16(adapter->specific_scan_time);
-                       }
+
                        chan_idx++;
                }
 
-- 
1.9.1

Reply via email to