mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
qcacld-3.0: Use objmgr api to get the vdev for pmo
Currently pmo disable run time pm offload api gets the vdev inside psoc obj lock but tries to take the reference of vdev without any lock protection, in this case it is possible that one thread gets the vdev and when it troes to get the vdev reference some other thread deletes the vdev because if which first thread will not be able to get the reference for the vdev which it alreaady holds. To address above issue use objmgr api to get the vdev. Change-Id: I8f47515f39ace809cfe9e134fd704a2914ed3d9a CRs-Fixed: 2769887
This commit is contained in:
parent
822e4f01a2
commit
95e385cfe1
1 changed files with 2 additions and 5 deletions
|
|
@ -453,16 +453,13 @@ static void pmo_core_disable_runtime_pm_offloads(struct wlan_objmgr_psoc *psoc)
|
|||
{
|
||||
uint8_t vdev_id;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
QDF_STATUS status;
|
||||
|
||||
/* Iterate through VDEV list */
|
||||
for (vdev_id = 0; vdev_id < WLAN_UMAC_PSOC_MAX_VDEVS; vdev_id++) {
|
||||
vdev = pmo_psoc_get_vdev(psoc, vdev_id);
|
||||
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
|
||||
WLAN_PMO_ID);
|
||||
if (!vdev)
|
||||
continue;
|
||||
status = pmo_vdev_get_ref(vdev);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
continue;
|
||||
|
||||
pmo_clear_action_frame_patterns(vdev);
|
||||
pmo_vdev_put_ref(vdev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue