mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
qcacmn: Add API to deint scan runtime suspend lock
Add API to deint scan runtime suspend lock, which can be called before HIF is closed, to avoid crash while acessing HIF pointer. Change-Id: Ida9269cdaea33a387e2acd1e3d9670d152b6016f CRs-Fixed: 2065228
This commit is contained in:
parent
af3420af93
commit
fb9d5acfed
2 changed files with 26 additions and 2 deletions
|
|
@ -139,6 +139,18 @@ int wlan_cfg80211_sched_scan_stop(struct wlan_objmgr_pdev *pdev,
|
|||
struct net_device *dev);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_scan_runtime_pm_deinit() - API to deinitialize runtime pm
|
||||
* for scan.
|
||||
* @pdev: Pointer to pdev
|
||||
*
|
||||
* This will help to deinitialize scan runtime pm before deinitialize
|
||||
* HIF
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void wlan_scan_runtime_pm_deinit(struct wlan_objmgr_pdev *pdev);
|
||||
|
||||
/**
|
||||
* wlan_cfg80211_scan_priv_init() - API to initialize cfg80211 scan
|
||||
* @pdev: Pointer to net device
|
||||
|
|
|
|||
|
|
@ -773,6 +773,20 @@ allow_suspend:
|
|||
|
||||
}
|
||||
|
||||
void wlan_scan_runtime_pm_deinit(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct pdev_osif_priv *osif_priv;
|
||||
struct osif_scan_pdev *scan_priv;
|
||||
|
||||
wlan_pdev_obj_lock(pdev);
|
||||
osif_priv = wlan_pdev_get_ospriv(pdev);
|
||||
wlan_pdev_obj_unlock(pdev);
|
||||
|
||||
scan_priv = osif_priv->osif_scan;
|
||||
qdf_runtime_lock_deinit(scan_priv->runtime_pm_lock);
|
||||
scan_priv->runtime_pm_lock = NULL;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cfg80211_scan_priv_init(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct pdev_osif_priv *osif_priv;
|
||||
|
|
@ -819,8 +833,6 @@ QDF_STATUS wlan_cfg80211_scan_priv_deinit(struct wlan_objmgr_pdev *pdev)
|
|||
ucfg_scan_unregister_requester(psoc, scan_priv->req_id);
|
||||
qdf_list_destroy(&scan_priv->scan_req_q);
|
||||
qdf_mutex_destroy(&scan_priv->scan_req_q_lock);
|
||||
qdf_runtime_lock_deinit(scan_priv->runtime_pm_lock);
|
||||
scan_priv->runtime_pm_lock = NULL;
|
||||
qdf_mem_free(scan_priv);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
|
|
|||
Loading…
Reference in a new issue