Parcourir la source

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 il y a 8 ans
Parent
commit
3810183ae2
1 fichiers modifiés avec 12 ajouts et 9 suppressions
  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;