wlan: check for max channels
Add a condition to check max channel limit before issuing scan
request.
Change-Id: I39cd50caf8acd25fc64c39357ca2c5f6c5dac2be
CRs-fixed: 649618.
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index e552883..929c48a 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -101,6 +101,8 @@
#endif
#endif
+#define MAX_CHANNEL MAX_2_4GHZ_CHANNEL + NUM_5GHZ_CHANNELS
+
typedef struct {
u8 element_id;
u8 len;
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 718fc70..7d865cf 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -5283,8 +5283,15 @@
/*Right now scanning all the channels */
if( request )
{
+ if (MAX_CHANNEL < request->n_channels)
+ {
+ hddLog(VOS_TRACE_LEVEL_WARN,
+ "No of Scan Channels exceeded limit: %d", request->n_channels);
+ request->n_channels = MAX_CHANNEL;
+ }
hddLog(VOS_TRACE_LEVEL_INFO,
"No of Scan Channels: %d", request->n_channels);
+
if( request->n_channels )
{
char chList [(request->n_channels*5)+1];