qcacmn: Fix DFS kernel panic

As part of DFS component destroy, "ic" is accessed to reset
NOL list and PRECAC channel list, but "ic" is already deleted
as part of MLME component destroy. And therefore invalid memory
access happens.

Reset NOL list and PRECAC channel list before "ic" deletion.

Change-Id: I1dbf273f1ea51945493140bfce9bfa116ad0c488
CRs-Fixed: 2071164
This commit is contained in:
Abhijit Pradhan
2017-07-12 18:48:14 +05:30
committed by snandini
szülő c5152c7904
commit fe7233a795
8 fájl változott, egészen pontosan 36 új sor hozzáadva és 18 régi sor törölve

Fájl megtekintése

@@ -185,4 +185,10 @@ QDF_STATUS tgt_dfs_cac_complete(struct wlan_objmgr_pdev *pdev,
*/
QDF_STATUS tgt_dfs_reg_ev_handler(struct wlan_objmgr_psoc *psoc,
bool dfs_offload);
/**
* tgt_dfs_stop() - Clear dfs timers.
* @dfs: Pointer to wlan_dfs structure.
*/
QDF_STATUS tgt_dfs_stop(struct wlan_objmgr_pdev *pdev);
#endif /* _WLAN_DFS_TGT_API_H_ */

Fájl megtekintése

@@ -248,3 +248,17 @@ QDF_STATUS tgt_dfs_reg_ev_handler(struct wlan_objmgr_psoc *psoc,
return status;
}
EXPORT_SYMBOL(tgt_dfs_reg_ev_handler);
QDF_STATUS tgt_dfs_stop(struct wlan_objmgr_pdev *pdev)
{
struct wlan_dfs *dfs;
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
if (dfs == NULL)
return QDF_STATUS_E_FAILURE;
dfs_stop(dfs);
return QDF_STATUS_SUCCESS;
}
EXPORT_SYMBOL(tgt_dfs_stop);