forked from rubenslte/android_kernel_samsung_msm8226
wlan: Fix Out-of-bound access in sapInterferenceRssiCount
Fix Out-of-bound access in sapInterferenceRssiCount, by checking the limit of start address for channel info and end address for channel info. Change-Id: If21e09d0f11bd655a8e04139ccf55d3682734b17 CRs-Fixed: 2149350
This commit is contained in:
committed by
Francescodario Cuzzocrea
parent
6400560b2a
commit
b368da61bc
@@ -580,7 +580,9 @@ v_U32_t sapweightRssiCount(v_S7_t rssi, v_U16_t count)
|
||||
|
||||
SIDE EFFECTS
|
||||
============================================================================*/
|
||||
void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh,
|
||||
tSapSpectChInfo *spect_ch_strt_addr,
|
||||
tSapSpectChInfo *spect_ch_end_addr)
|
||||
{
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
v_S31_t rssi;
|
||||
@@ -596,7 +598,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
{
|
||||
case CHANNEL_1:
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -609,7 +613,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -622,7 +628,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -635,7 +643,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -651,7 +661,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
|
||||
case CHANNEL_2:
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -664,7 +676,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -677,7 +691,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -690,7 +706,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -703,7 +721,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -718,7 +738,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
break;
|
||||
case CHANNEL_3:
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -731,7 +753,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -744,7 +768,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -757,7 +783,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -770,7 +798,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -783,7 +813,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -798,7 +830,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
break;
|
||||
case CHANNEL_4:
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -811,7 +845,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -824,7 +860,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -837,7 +875,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -850,7 +890,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -863,7 +905,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -876,7 +920,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -894,7 +940,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
case CHANNEL_6:
|
||||
case CHANNEL_7:
|
||||
pExtSpectCh = (pSpectCh - 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -907,7 +955,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -920,7 +970,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -933,7 +985,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -946,7 +1000,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -959,7 +1015,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -972,7 +1030,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -985,7 +1045,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1001,7 +1063,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
|
||||
case CHANNEL_8:
|
||||
pExtSpectCh = (pSpectCh - 4);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1015,7 +1079,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
}
|
||||
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1028,7 +1094,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1041,7 +1109,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1054,7 +1124,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1067,7 +1139,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1080,7 +1154,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1096,7 +1172,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
|
||||
case CHANNEL_9:
|
||||
pExtSpectCh = (pSpectCh - 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1110,7 +1188,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
}
|
||||
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1123,7 +1203,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1136,7 +1218,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1149,7 +1233,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1162,7 +1248,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1178,7 +1266,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
|
||||
case CHANNEL_10:
|
||||
pExtSpectCh = (pSpectCh - 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1192,7 +1282,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
}
|
||||
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1205,7 +1297,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1218,7 +1312,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1231,7 +1327,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1247,7 +1345,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
|
||||
case CHANNEL_11:
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1260,7 +1360,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1273,7 +1375,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1286,7 +1390,9 @@ void sapInterferenceRssiCount(tSapSpectChInfo *pSpectCh)
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 4);
|
||||
if (pExtSpectCh != NULL)
|
||||
if (pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= spect_ch_strt_addr &&
|
||||
pExtSpectCh < spect_ch_end_addr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr +
|
||||
@@ -1345,6 +1451,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
v_U32_t ieLen = 0;
|
||||
tSirProbeRespBeacon *pBeaconStruct;
|
||||
tpAniSirGlobal pMac = (tpAniSirGlobal) halHandle;
|
||||
tSapSpectChInfo *pSpectChStartAddr = pSpectInfoParams->pSpectCh;
|
||||
tSapSpectChInfo *pSpectChEndAddr =
|
||||
pSpectInfoParams->pSpectCh + pSpectInfoParams->numSpectChans;
|
||||
|
||||
pBeaconStruct = vos_mem_malloc(sizeof(tSirProbeRespBeacon));
|
||||
if ( NULL == pBeaconStruct )
|
||||
@@ -1428,7 +1537,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
case PHY_DOUBLE_CHANNEL_LOW_PRIMARY: // Above the Primary Channel
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1444,7 +1555,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
|
||||
case PHY_DOUBLE_CHANNEL_HIGH_PRIMARY: // Below the Primary channel
|
||||
pExtSpectCh = (pSpectCh - 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
if (IS_RSSI_VALID(pExtSpectCh->rssiAgr, rssi))
|
||||
@@ -1463,7 +1576,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
{
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1475,7 +1590,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1487,7 +1604,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 3);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1503,7 +1622,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
{
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
pExtSpectCh = (pSpectCh - 1 );
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1515,7 +1636,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1527,7 +1650,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1543,7 +1668,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
{
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
pExtSpectCh = (pSpectCh - 1 );
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1555,7 +1682,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1567,7 +1696,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh + 1);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1583,7 +1714,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
{
|
||||
tSapSpectChInfo *pExtSpectCh = NULL;
|
||||
pExtSpectCh = (pSpectCh - 1 );
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND1_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1595,7 +1728,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 2);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND2_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1607,7 +1742,9 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
pExtSpectCh->rssiAgr = SOFTAP_MIN_RSSI;
|
||||
}
|
||||
pExtSpectCh = (pSpectCh - 3);
|
||||
if(pExtSpectCh != NULL)
|
||||
if( pExtSpectCh != NULL &&
|
||||
(pExtSpectCh >= pSpectChStartAddr &&
|
||||
pExtSpectCh < pSpectChEndAddr))
|
||||
{
|
||||
++pExtSpectCh->bssCount;
|
||||
rssi = pSpectCh->rssiAgr + SAP_SUBBAND3_RSSI_EFFECT_PRIMARY;
|
||||
@@ -1624,7 +1761,8 @@ void sapComputeSpectWeight( tSapChSelSpectInfo* pSpectInfoParams,
|
||||
}
|
||||
else if(operatingBand == eSAP_RF_SUBBAND_2_4_GHZ)
|
||||
{
|
||||
sapInterferenceRssiCount(pSpectCh);
|
||||
sapInterferenceRssiCount(pSpectCh, pSpectChStartAddr,
|
||||
pSpectChEndAddr);
|
||||
}
|
||||
|
||||
VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
|
||||
|
||||
Reference in New Issue
Block a user