diff options
| author | Nirav Shah <nnshah@qti.qualcomm.com> | 2014-11-25 11:51:09 +0530 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-11-26 17:12:07 +0530 |
| commit | ff149966bd2555e7aa886766b04ba1c62fdabdcd (patch) | |
| tree | fed41f00bddd9a6e52ae550bf5df670329825e04 | |
| parent | 2eebd304be929d720e58a1169207102e66893445 (diff) | |
qcacld: Reset vosEvent before waiting for it.
Reset/Initialize vosEvent before issueing WLANSAP_StopBss
to wait for delete bss response to avoid race condition.
Change-Id: I50af469bc6b7dd96eabd35d6ee9431ef103a2ae3
CRs-fixed: 762382
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_hostapd.c | 5 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c index 4f4371ee2f4e..4bb258ada884 100644 --- a/CORE/HDD/src/wlan_hdd_hostapd.c +++ b/CORE/HDD/src/wlan_hdd_hostapd.c @@ -4231,6 +4231,9 @@ static int iw_softap_stopbss(struct net_device *dev, if(test_bit(SOFTAP_BSS_STARTED, &pHostapdAdapter->event_flags)) { + hdd_hostapd_state_t *pHostapdState = + WLAN_HDD_GET_HOSTAP_STATE_PTR(pHostapdAdapter); + vos_event_reset(&pHostapdState->vosEvent); #ifdef WLAN_FEATURE_MBSSID status = WLANSAP_StopBss(WLAN_HDD_GET_SAP_CTX_PTR(pHostapdAdapter)); #else @@ -4238,8 +4241,6 @@ static int iw_softap_stopbss(struct net_device *dev, #endif if (VOS_IS_STATUS_SUCCESS(status)) { - hdd_hostapd_state_t *pHostapdState = WLAN_HDD_GET_HOSTAP_STATE_PTR(pHostapdAdapter); - status = vos_wait_single_event(&pHostapdState->vosEvent, 10000); if (!VOS_IS_STATUS_SUCCESS(status)) diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index b3523716baf5..b21a82d20298 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -617,6 +617,8 @@ static void wlan_hdd_restart_sap(hdd_adapter_t *ap_adapter) hdd_cleanup_actionframe(pHddCtx, ap_adapter); pHostapdState = WLAN_HDD_GET_HOSTAP_STATE_PTR(ap_adapter); + vos_event_reset(&pHostapdState->vosEvent); + if ( VOS_STATUS_SUCCESS == WLANSAP_StopBss( #ifdef WLAN_FEATURE_MBSSID pHddApCtx->sapContext @@ -9689,6 +9691,9 @@ VOS_STATUS hdd_stop_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter, { VOS_STATUS status; hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter); + hdd_hostapd_state_t *pHostapdState = + WLAN_HDD_GET_HOSTAP_STATE_PTR(pAdapter); + vos_event_reset(&pHostapdState->vosEvent); //Stop Bss. #ifdef WLAN_FEATURE_MBSSID @@ -9699,9 +9704,6 @@ VOS_STATUS hdd_stop_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter, if (VOS_IS_STATUS_SUCCESS(status)) { - hdd_hostapd_state_t *pHostapdState = - WLAN_HDD_GET_HOSTAP_STATE_PTR(pAdapter); - status = vos_wait_single_event(&pHostapdState->vosEvent, 10000); if (!VOS_IS_STATUS_SUCCESS(status)) |
