qcacmn: Trigger eWNI_SME_DFS_RADAR_FOUND once for one radar

Currently eWNI_SME_DFS_RADAR_FOUND is triggered for every vdev
attached to the pdev in which radar is found. It is incorrect
because when handling one eWNI_SME_DFS_RADAR_FOUND event, every
sap in the DFS channel processes the event.

Trigger eWNI_SME_DFS_RADAR_FOUND once for one radar detection.

Change-Id: I72f8a2a34b670bd86f07d0caabf2ee8f96c962be
CRs-Fixed: 2504793
Цей коміт міститься в:
bings
2019-08-13 12:10:20 +08:00
зафіксовано nshrivas
джерело b2e00f901f
коміт 208ab01f20

Переглянути файл

@@ -76,15 +76,19 @@ void dfs_mlme_mark_dfs(struct wlan_objmgr_pdev *pdev,
uint8_t vhtop_ch_freq_seg2,
uint64_t flags)
{
struct wlan_objmgr_vdev *vdev;
if (!pdev) {
dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "null pdev");
return;
}
wlan_objmgr_pdev_iterate_obj_list(pdev,
WLAN_VDEV_OP,
dfs_send_radar_ind,
NULL, 0, WLAN_DFS_ID);
vdev = wlan_pdev_peek_active_first_vdev(pdev, WLAN_DFS_ID);
if (vdev) {
dfs_send_radar_ind(pdev, vdev, NULL);
wlan_objmgr_vdev_release_ref(vdev, WLAN_DFS_ID);
}
}
#endif
@@ -102,15 +106,19 @@ void dfs_mlme_start_csa(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq,
uint8_t cfreq2, uint64_t flags)
{
struct wlan_objmgr_vdev *vdev;
if (!pdev) {
dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "null pdev");
return;
}
wlan_objmgr_pdev_iterate_obj_list(pdev,
WLAN_VDEV_OP,
dfs_send_radar_ind,
NULL, 0, WLAN_DFS_ID);
vdev = wlan_pdev_peek_active_first_vdev(pdev, WLAN_DFS_ID);
if (vdev) {
dfs_send_radar_ind(pdev, vdev, NULL);
wlan_objmgr_vdev_release_ref(vdev, WLAN_DFS_ID);
}
}
#endif