android_kernel_motorola_sm6375/components
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Abhishek Singh bb9deb4ae0 qcacld-3.0: Release vdev ref and delete pending peers in wma close
In hdd_vdev_destroy, if policy_mgr_check_and_stop_opportunistic_timer
decides to move to single mac mode and while sending the HW mode change
the target goes down, this leads to timeout of the HW mode change req in
WMA layer which is 2 sec and in serialization its 4 sec, but
policy_mgr_check_and_stop_opportunistic_timer timeout in 1 sec and proceed
to sme_close_session and wait for it to complete.

sme_close_session queue WLAN_SER_CMD_DEL_STA_SESSION to serialization but
it remains in pending queue, behind HW mode change req.

Now due to SSR the wait event for sme_close_session is set and thus
hdd_vdev_destroy logically deletes the vdev.

Now on WMA timeout the HW mode change try to remove the request from
serialization which it fails to remove as it fails to get ref for vdev
with vdev being logically deleted.

Thus WLAN_SER_CMD_DEL_STA_SESSION is not processed and is flushed in
hdd_wlan_shutdown.

Thus as SSR WLAN_SER_CMD_DEL_STA_SESSION is flushed from serialization
queue, the wma_vdev_detach() is not called for that vdev and thus the
peer attached to the vdev are not deleted and wma vdev ref is also not
released, this lead vdev/peer ref leak.

To fix this update the wait timeout in
policy_mgr_check_and_stop_opportunistic_timer with proper value higher
than the serialization timeout for the HW mode change request. ALso
set the wait event in policy_mgr_pdev_set_hw_mode_cb in failure cases
as well to avoid timeout in case of hw mode change failures.

Also release pending peer and vdef refs in wma_wmi_service_close.

Change-Id: I5ddf8263b0dbf889be506332a67f5e18c1bfb111
CRs-Fixed: 2458034
2019-05-24 23:13:17 -07:00
..
action_oui
cfg qcacld-3.0: Replace CONVERGED_TDLS_ENABLE feature flag 2019-02-20 09:09:34 -08:00
cmn_services/policy_mgr qcacld-3.0: Release vdev ref and delete pending peers in wma close 2019-05-24 23:13:17 -07:00
disa qcacld-3.0: disa: Replace explicit comparison to NULL 2019-03-20 00:57:48 -07:00
dsc qcacld-3.0: Disable dsc_debug log in perf-build 2019-04-18 02:33:16 -07:00
fw_offload qcacld-3.0: Add PTP timestamp socket options TX support 2019-05-23 22:57:27 -07:00
interop_issues_ap qcacld-3.0: Implement api for interop issues ap 2019-05-24 16:00:44 -07:00
ipa qcacld-3.0: Enable STA IPA offload for MDM platforms 2019-04-30 02:13:14 -07:00
mlme qcacld-3.0: Fix incorrect type and range for LFR ini 2019-05-20 11:22:09 -07:00
nan qcacld-3.0: Fix uninitialized subtype usage by policy manager 2019-05-01 16:21:03 -07:00
ocb qcacld-3.0: Replace EDCA_AC_* macros with QCA_WLAN_AC_* 2019-03-24 17:54:49 -07:00
p2p qcacld-3.0: Stop ROC timer synchronously 2019-05-08 02:51:25 -07:00
pmo qcacld-3.0: Call correct PMO API for setting PS params 2019-05-23 16:39:55 -07:00
target_if qcacld-3.0: Implement api for interop issues ap 2019-05-24 16:00:44 -07:00
tdls qcacld-3.0: Enable TDLS in case of STA association failure 2019-05-20 13:40:37 -07:00