summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYue Ma <yuem@qca.qualcomm.com>2014-02-18 15:23:18 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-02-20 21:42:17 -0800
commit9aa2b6ddf798951dafb5e5f01a0cd52d4e298c7d (patch)
tree637ad27d89bc9ac264aaf021381387a2ae139cb6
parente389a29bf810c76e64cb0c1b185a01dc21ebe00d (diff)
qcacld: Add the memory corruption fix to SSR routine
Newly added wma_wmi_service_close() function which fixes a memory corruption should be also added to SSR shutdown routine. Without this function WDA context won't be free during SSR which will cause SSR re-init failure. Change-Id: Ida8cc71a76790d89ae3202a41662f74358fe0592 CRs-Fixed: 613863
-rw-r--r--CORE/HDD/src/wlan_hdd_early_suspend.c1
-rw-r--r--CORE/VOSS/src/vos_api.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index a85eb1129b8c..1371929f5cab 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -1592,6 +1592,7 @@ VOS_STATUS hdd_wlan_shutdown(void)
#endif //WLAN_BTAMP_FEATURE
#if defined(QCA_WIFI_2_0) && !defined(QCA_WIFI_ISOC)
+ hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Doing WDA STOP", __func__);
vosStatus = WDA_stop(pVosContext, HAL_STOP_TYPE_RF_KILL);
if (!VOS_IS_STATUS_SUCCESS(vosStatus))
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index 041a9e918a75..6b143ce378a7 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -2250,7 +2250,7 @@ VOS_STATUS vos_shutdown(v_CONTEXT_t vosContext)
vosStatus = WDA_shutdown(vosContext, VOS_TRUE);
if (!VOS_IS_STATUS_SUCCESS(vosStatus))
{
- VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_FATAL,
+ VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
"%s: Failed to shutdown WDA!", __func__);
VOS_ASSERT(VOS_IS_STATUS_SUCCESS(vosStatus));
}
@@ -2272,6 +2272,14 @@ VOS_STATUS vos_shutdown(v_CONTEXT_t vosContext)
HTCDestroy(gpVosContext->htc_ctx);
gpVosContext->htc_ctx = NULL;
}
+
+ vosStatus = wma_wmi_service_close(vosContext);
+ if (!VOS_IS_STATUS_SUCCESS(vosStatus))
+ {
+ VOS_TRACE(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
+ "%s: Failed to close wma_wmi_service!", __func__);
+ VOS_ASSERT(VOS_IS_STATUS_SUCCESS(vosStatus));
+ }
#endif
#ifndef QCA_WIFI_2_0