mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 08:07:32 -04:00
qcacmn: Start Host wait timer and then send radar_params to FW
When radar is detected on a channel and the radar parameters are sent to FW, the Host Wait Timer expires even though the action status is received from FW. At this point, the VAP state machine sends a multivdev restart on the target channel, and is in restart progress substate. Since the Host Timer expires due to some reason, radar detect event is posted to vdev state machine, that is currently in restart progress state and, this causes a target assert and leads to kernel panic. This issue is solved by the following 2 ways: 1) Start the host wait timer first, and then send the radar found params to the target. 2) Check if dfs_is_host_wait_running is true, in the Host Wait Timer's timeout, and only then call the radar_found_action_generic API. Change-Id: I9b93c7c1822966f7d6bc00c00229849fdb5627d9 CRs-Fixed: 2604173
This commit is contained in:
parent
b5bc05ee3f
commit
a6d77e7dbd
1 changed files with 2 additions and 2 deletions
|
|
@ -646,13 +646,13 @@ void dfs_radarfound_action_fcc(struct wlan_dfs *dfs, uint8_t seg_id)
|
|||
qdf_mem_copy(&dfs->dfs_radar_found_chan, dfs->dfs_curchan,
|
||||
sizeof(dfs->dfs_radar_found_chan));
|
||||
dfs_extract_radar_found_params(dfs, ¶ms);
|
||||
dfs_send_avg_params_to_fw(dfs, ¶ms);
|
||||
dfs->dfs_is_host_wait_running = 1;
|
||||
dfs->dfs_seg_id = seg_id;
|
||||
qdf_timer_mod(&dfs->dfs_host_wait_timer,
|
||||
(dfs->dfs_status_timeout_override ==
|
||||
-1) ? HOST_DFS_STATUS_WAIT_TIMER_MS :
|
||||
dfs->dfs_status_timeout_override);
|
||||
dfs->dfs_seg_id = seg_id;
|
||||
dfs_send_avg_params_to_fw(dfs, ¶ms);
|
||||
}
|
||||
|
||||
void dfs_host_wait_timer_reset(struct wlan_dfs *dfs)
|
||||
|
|
|
|||
Loading…
Reference in a new issue