|
@@ -1691,6 +1691,7 @@ static int wma_group_num_bss_to_scan_id(const u_int8_t *cmd_param_info,
|
|
|
struct extscan_cached_scan_results *t_cached_result;
|
|
|
struct extscan_cached_scan_result *t_scan_id_grp;
|
|
|
int i, j;
|
|
|
+ uint32_t total_scan_num_results = 0;
|
|
|
tSirWifiScanResult *ap;
|
|
|
|
|
|
param_buf = (WMI_EXTSCAN_CACHED_RESULTS_EVENTID_param_tlvs *)
|
|
@@ -1701,16 +1702,19 @@ static int wma_group_num_bss_to_scan_id(const u_int8_t *cmd_param_info,
|
|
|
t_cached_result = cached_result;
|
|
|
t_scan_id_grp = &t_cached_result->result[0];
|
|
|
|
|
|
- if ((t_cached_result->num_scan_ids *
|
|
|
- QDF_MIN(t_scan_id_grp->num_results,
|
|
|
- param_buf->num_bssid_list)) > param_buf->num_bssid_list) {
|
|
|
- wma_err("num_scan_ids %d, num_results %d num_bssid_list %d",
|
|
|
- t_cached_result->num_scan_ids,
|
|
|
- t_scan_id_grp->num_results,
|
|
|
- param_buf->num_bssid_list);
|
|
|
+ for (i = 0; i < t_cached_result->num_scan_ids; i++) {
|
|
|
+ total_scan_num_results += t_scan_id_grp->num_results;
|
|
|
+ t_scan_id_grp++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (total_scan_num_results > param_buf->num_bssid_list) {
|
|
|
+ wma_err("total_scan_num_results %d, num_bssid_list %d",
|
|
|
+ total_scan_num_results,
|
|
|
+ param_buf->num_bssid_list);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
+ t_scan_id_grp = &t_cached_result->result[0];
|
|
|
wma_debug("num_scan_ids:%d",
|
|
|
t_cached_result->num_scan_ids);
|
|
|
for (i = 0; i < t_cached_result->num_scan_ids; i++) {
|
|
@@ -1721,8 +1725,7 @@ static int wma_group_num_bss_to_scan_id(const u_int8_t *cmd_param_info,
|
|
|
return -ENOMEM;
|
|
|
|
|
|
ap = &t_scan_id_grp->ap[0];
|
|
|
- for (j = 0; j < QDF_MIN(t_scan_id_grp->num_results,
|
|
|
- param_buf->num_bssid_list); j++) {
|
|
|
+ for (j = 0; j < t_scan_id_grp->num_results; j++) {
|
|
|
ap->channel = src_hotlist->channel;
|
|
|
ap->ts = WMA_MSEC_TO_USEC(src_rssi->tstamp);
|
|
|
ap->rtt = src_hotlist->rtt;
|