summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@codeaurora.org>2017-12-06 11:20:50 -0800
committersnandini <snandini@codeaurora.org>2017-12-06 16:07:06 -0800
commit1e61eb265d2aba210e020ab4e4cf5dbabf5955a8 (patch)
treedfc44a67dc1c54dfd11fc3ff54bdbb1f474cbc1f
parent1a15cea9c9e3f95cc1aa0542bab46601cd3023b4 (diff)
qcacld-3.0: Detach OL TXRX vdev when WMI vdev delete fails
In SMMU enabld builds when system goes in low memory DMA MAP APIs fails which causes WMI VDEV delete command send failure and as a side effect WALN driver leaks the OL TXRX VDEV memory. To fix OLTXRX VDEV memory leak call TXRX vdev deatch API in case WMI VDEV delete fails because of DMA MAP failure. Change-Id: I3936a973a1398a2e22c9e4e1ca3cdb969309d61b CRs-Fixed: 2154578
-rw-r--r--core/wma/src/wma_dev_if.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 2d2a49336f51..365a8d819a51 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -564,6 +564,9 @@ static QDF_STATUS wma_handle_vdev_detach(tp_wma_handle wma_handle,
status = wmi_unified_vdev_delete_send(wma_handle->wmi_handle, vdev_id);
if (QDF_IS_STATUS_ERROR(status)) {
WMA_LOGE("Unable to remove an interface");
+ ol_txrx_vdev_detach(iface->handle, NULL, NULL);
+ iface->handle = NULL;
+ wma_handle->interfaces[vdev_id].is_vdev_valid = false;
goto out;
}