Browse Source

qcacmn: Send radar found event only for dfs channels

If radar is injected on the non-dfs segment of a DFS channel
(e.g. Operating channel is 36 HT160, center freq is 5250, freq_offset is
 -20, radarfound_freq = center freq + freq = 5230 (IEEE 46) which is a
non-dfs segment) using bangradar command, radar detect event on
non-dfs channel is sent to user space.
To ensure that radar found event is indicated only for DFS channel,
send radarfound event only if the final status of the API
dfs_process_radar_ind_on_home_chan() is a success. If the API returns a
failure (eg: radar on non-dfs segment), do not send radar detect event
to user space.

CRs-Fixed: 3254309
Change-Id: Iefc277348569e1494401f0ec215bb786e4153268
Priyadarshnee Srinivasan 2 years ago
parent
commit
c605b9e080
1 changed files with 4 additions and 3 deletions
  1. 4 3
      umac/dfs/core/src/misc/dfs_process_radar_found_ind.c

+ 4 - 3
umac/dfs/core/src/misc/dfs_process_radar_found_ind.c

@@ -1018,9 +1018,6 @@ dfs_process_radar_ind_on_home_chan(struct wlan_dfs *dfs,
 			  radarfound_freq, dfs_curchan->dfs_ch_ieee,
 			  radarfound_freq, dfs_curchan->dfs_ch_ieee,
 			  dfs_curchan->dfs_ch_freq);
 			  dfs_curchan->dfs_ch_freq);
 
 
-	utils_dfs_deliver_event(dfs->dfs_pdev_obj, radarfound_freq,
-				WLAN_EV_RADAR_DETECTED);
-
 	if (!dfs->dfs_use_nol) {
 	if (!dfs->dfs_use_nol) {
 		if (!dfs->dfs_is_offload_enabled) {
 		if (!dfs->dfs_is_offload_enabled) {
 			dfs_radar_disable(dfs);
 			dfs_radar_disable(dfs);
@@ -1127,6 +1124,10 @@ dfs_process_radar_ind_on_home_chan(struct wlan_dfs *dfs,
 			  dfs->dfs_curchan->dfs_ch_flags);
 			  dfs->dfs_curchan->dfs_ch_flags);
 
 
 exit:
 exit:
+	if (QDF_IS_STATUS_SUCCESS(status))
+		utils_dfs_deliver_event(dfs->dfs_pdev_obj, radarfound_freq,
+					WLAN_EV_RADAR_DETECTED);
+
 	return status;
 	return status;
 }
 }
 #endif
 #endif