summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirav Shah <nnshah@qti.qualcomm.com>2014-11-25 11:51:09 +0530
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2014-11-26 17:12:07 +0530
commitff149966bd2555e7aa886766b04ba1c62fdabdcd (patch)
treefed41f00bddd9a6e52ae550bf5df670329825e04
parent2eebd304be929d720e58a1169207102e66893445 (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.c5
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c8
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))