瀏覽代碼

qcacmn: Fix channel_map NULL

Initialize channel_map to "us" at regulatory init.
Use NUM_6GHZ_CHANNELS to get 6Ghz channel numbers
instead of MAX_6GHZ_CHANNEL.

Change-Id: Ifed996c1a528c8a3c0a29d3959f17dff6d298193
CRs-Fixed: 2949971
Liangwei Dong 5 年之前
父節點
當前提交
7ce41f14c1
共有 2 個文件被更改,包括 12 次插入6 次删除
  1. 1 1
      umac/regulatory/dispatcher/src/wlan_reg_services_api.c
  2. 11 5
      umac/scan/core/src/wlan_scan_cache_db.c

+ 1 - 1
umac/regulatory/dispatcher/src/wlan_reg_services_api.c

@@ -341,7 +341,7 @@ QDF_STATUS wlan_regulatory_init(void)
 		reg_err("failed to register reg psoc obj create handler");
 		goto unreg_pdev_create;
 	}
-
+	channel_map = channel_map_global;
 	reg_debug("regulatory handlers registered with obj mgr");
 
 	return status;

+ 11 - 5
umac/scan/core/src/wlan_scan_cache_db.c

@@ -182,9 +182,11 @@ static void scm_del_rnr_channel_db(struct scan_cache_entry *entry)
 			return;
 		}
 		channel->bss_beacon_probe_count--;
+		cur_node = NULL;
 		qdf_list_peek_front(&channel->rnr_list, &cur_node);
 		/* Free the Node */
 		while (cur_node) {
+			next_node = NULL;
 			qdf_list_peek_next(&channel->rnr_list, cur_node,
 					   &next_node);
 			rnr_node = qdf_container_of(cur_node,
@@ -1616,20 +1618,22 @@ QDF_STATUS scm_db_deinit(struct wlan_objmgr_psoc *psoc)
 #ifdef FEATURE_6G_SCAN_CHAN_SORT_ALGO
 QDF_STATUS scm_channel_list_db_init(struct wlan_objmgr_psoc *psoc)
 {
-	uint8_t i, j = 0;
+	uint32_t i, j;
 	uint32_t min_freq, max_freq;
 
 	min_freq = wlan_reg_min_6ghz_chan_freq();
 	max_freq = wlan_reg_max_6ghz_chan_freq();
 
 	scm_debug("min_freq %d max_freq %d", min_freq, max_freq);
-	for (i = min_freq; i <= max_freq; i += 20, j++) {
-		rnr_channel_db.channel[j].chan_freq = i;
+	i = min_freq;
+	for (j = 0; j < NUM_6GHZ_CHANNELS; j++) {
+		if (i >= min_freq && i <= max_freq)
+			rnr_channel_db.channel[j].chan_freq = i;
 		qdf_list_create(&rnr_channel_db.channel[j].rnr_list,
 				WLAN_MAX_RNR_COUNT);
 		scm_debug("freq %d", i);
+		i += 20;
 	}
-
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -1640,11 +1644,13 @@ QDF_STATUS scm_channel_list_db_deinit(struct wlan_objmgr_psoc *psoc)
 	struct meta_rnr_channel *channel;
 	struct scan_rnr_node *rnr_node;
 
-	for (i = 0; i <= MAX_6GHZ_CHANNEL; i++) {
+	for (i = 0; i < NUM_6GHZ_CHANNELS; i++) {
 		channel = &rnr_channel_db.channel[i];
 		channel->chan_freq = 0;
+		cur_node = NULL;
 		qdf_list_peek_front(&channel->rnr_list, &cur_node);
 		while (cur_node) {
+			next_node = NULL;
 			qdf_list_peek_next(&channel->rnr_list, cur_node,
 					   &next_node);
 			rnr_node = qdf_container_of(cur_node,