Преглед изворни кода

qcacld-3.0: Avoid overwrite channel list in RSO command preparation

Currently, while sending RSO command, channel list is overwritten
with valid channel list from mac context even though it is already
properly updated from current channel list info (or) INI.

Avoid overwrite channel list in RSO command if it is already
updated properly.

Change-Id: Iee1875e378270530b29540b379d68b2b0fd7ac2d
CRs-Fixed: 2045067
Selvaraj, Sridhar пре 8 година
родитељ
комит
3810183ae2
1 измењених фајлова са 12 додато и 9 уклоњено
  1. 12 9
      core/sme/src/csr/csr_api_roam.c

+ 12 - 9
core/sme/src/csr/csr_api_roam.c

@@ -17297,6 +17297,18 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
 						curr_ch_lst_info, req_buf);
 	}
 #endif
+
+	if (req_buf->ConnectedNetwork.ChannelCount == 0) {
+		/* Maintain the Valid Channels List */
+		status = csr_fetch_valid_ch_lst(mac_ctx, req_buf);
+		if (!QDF_IS_STATUS_SUCCESS(status)) {
+			QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+					"Fetch channel list fail");
+			qdf_mem_free(req_buf);
+			return NULL;
+		}
+	}
+
 	for (i = 0, j = 0; i < req_buf->ConnectedNetwork.ChannelCount; i++) {
 		if (j < sizeof(ch_cache_str)) {
 			j += snprintf(ch_cache_str + j,
@@ -17311,15 +17323,6 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
 		  req_buf->ChannelCacheType,
 		  req_buf->ConnectedNetwork.ChannelCount, ch_cache_str);
 
-	/* Maintain the Valid Channels List */
-	status = csr_fetch_valid_ch_lst(mac_ctx, req_buf);
-	if (!QDF_IS_STATUS_SUCCESS(status)) {
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
-			"Fetch channel list fail");
-		qdf_mem_free(req_buf);
-		return NULL;
-	}
-
 	req_buf->MDID.mdiePresent =
 		mac_ctx->roam.roamSession[session_id].
 		connectedProfile.MDID.mdiePresent;