瀏覽代碼

qcacmn: Filter the single channel scan request if the channel is NOL

A single channel scan request is not validated for NOL and scan start
request is sent directly. This leads to scan violation.

Reject the single channel scan request, if the channel is in NOL by
proceeding to validate the channel before sending scan start.

Change-Id: I128b1bea8de534f08e9d93cb154c2ba5adeba452
CRs-Fixed: 2546693
Vignesh U 5 年之前
父節點
當前提交
5ad018742a
共有 1 個文件被更改,包括 5 次插入3 次删除
  1. 5 3
      umac/scan/core/src/wlan_scan_manager.c

+ 5 - 3
umac/scan/core/src/wlan_scan_manager.c

@@ -918,6 +918,7 @@ scm_update_channel_list(struct scan_start_request *req,
 	bool first_scan_done = true;
 	bool p2p_search = false;
 	bool skip_dfs_ch = true;
+	uint32_t first_freq;
 
 	pdev = wlan_vdev_get_pdev(req->vdev);
 
@@ -938,10 +939,11 @@ scm_update_channel_list(struct scan_start_request *req,
 	 * No need to update channels if req is single channel* ie ROC,
 	 * Preauth or a single channel scan etc.
 	 * If the single chan in the scan channel list is an NOL channel,it is
-	 * not removed as it would reduce the number of scan channels to 0
-	 * and FW would scan all chans which is unexpected in this scenerio.
+	 * removed and it would reduce the number of scan channels to 0.
 	 */
-	if (req->scan_req.chan_list.num_chan == 1)
+	first_freq = req->scan_req.chan_list.chan[0].freq;
+	if ((req->scan_req.chan_list.num_chan == 1) &&
+	    (!utils_dfs_is_freq_in_nol(pdev, first_freq)))
 		return;
 
 	/* do this only for STA and P2P-CLI mode */