qcacmn: Fix DFS kernel panic

Problem:
During DFS attach the DFS related timers are initialized only if
the DFS is not offloaded.
When user issues a bangradar command for full offload where DFS is
offloaded to FW, HOST is trying to set a un-initialized timer and
leads to a crash.

Solution:
Handle bangradar command in HOST only if the DFS is not offloaded.

Change-Id: I8d23d450ff1941890fdc81cef1425fae8b55ce56
CRs-Fixed: 2108874
This commit is contained in:
Shashikala Prabhu
2017-09-18 17:20:08 +05:30
committed by snandini
szülő 86a83e8927
commit bb8b274815

Fájl megtekintése

@@ -924,10 +924,12 @@ int dfs_control(struct wlan_dfs *dfs,
dfs_print_nolhistory(dfs);
break;
case DFS_BANGRADAR:
dfs->dfs_bangradar = 1;
dfs->wlan_radar_tasksched = 1;
qdf_timer_mod(&dfs->wlan_dfs_task_timer, 0);
error = 0;
if (!dfs->dfs_is_offload_enabled) {
dfs->dfs_bangradar = 1;
dfs->wlan_radar_tasksched = 1;
qdf_timer_mod(&dfs->wlan_dfs_task_timer, 0);
error = 0;
}
break;
case DFS_SHOW_PRECAC_LISTS:
dfs_print_precaclists(dfs);
@@ -936,10 +938,12 @@ int dfs_control(struct wlan_dfs *dfs,
dfs_reset_precac_lists(dfs);
break;
case DFS_SECOND_SEGMENT_BANGRADAR:
dfs->dfs_second_segment_bangradar = 1;
dfs->wlan_radar_tasksched = 1;
qdf_timer_mod(&dfs->wlan_dfs_task_timer, 0);
error = 0;
if (!dfs->dfs_is_offload_enabled) {
dfs->dfs_second_segment_bangradar = 1;
dfs->wlan_radar_tasksched = 1;
qdf_timer_mod(&dfs->wlan_dfs_task_timer, 0);
error = 0;
}
break;
default:
error = -EINVAL;