diff options
| author | Yue Ma <yuem@qca.qualcomm.com> | 2014-02-18 15:23:18 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-02-20 21:42:17 -0800 |
| commit | 9aa2b6ddf798951dafb5e5f01a0cd52d4e298c7d (patch) | |
| tree | 637ad27d89bc9ac264aaf021381387a2ae139cb6 | |
| parent | e389a29bf810c76e64cb0c1b185a01dc21ebe00d (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.c | 1 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_api.c | 10 |
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 |
