diff options
| author | Kanchanapally, Vidyullatha <vkanchan@qti.qualcomm.com> | 2014-02-24 16:38:39 +0530 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-02-28 01:47:14 -0800 |
| commit | 168b18d60b76994267b2f5edd872459f69cdf0ff (patch) | |
| tree | 8f9cee1837f975b174508a0d4b77d40d9f05a1c5 | |
| parent | bf1c297fe8008c4b7454eb35e47224de05d76a0a (diff) | |
qcacld: enable tx queues before hdd_roamRegisterSTA
Enable tx queues before hdd_roamRegisterSTA, since there
is a possibility to have cached data RX frames which are
immediately flushed upon invoking hdd_roamRegisterSTA.
Hence it is possible that their responses may not reach
the driver if processed immediately before the tx queues
are enabled.
Change-Id: I7049f797a003e7deaed52e96dccae033f29cbb90
CRs-Fixed: 610608
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_assoc.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c index 714d2bc10dd1..80f1906910e1 100644 --- a/CORE/HDD/src/wlan_hdd_assoc.c +++ b/CORE/HDD/src/wlan_hdd_assoc.c @@ -1455,6 +1455,15 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs pHddCtx->wiphy, #endif bss); + + // perform any WMM-related association processing + hdd_wmm_assoc(pAdapter, pRoamInfo, eCSR_BSS_TYPE_INFRASTRUCTURE); + + /* Start the Queue - Start tx queues before hdd_roamRegisterSTA, + since hdd_roamRegisterSTA will flush any cached data frames + immediately */ + netif_tx_wake_all_queues(dev); + // Register the Station with TL after associated... vosStatus = hdd_roamRegisterSTA( pAdapter, pRoamInfo, @@ -1490,16 +1499,20 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs WLANTL_STA_AUTHENTICATED ); pHddStaCtx->conn_info.uIsAuthenticated = VOS_TRUE; } - } - if ( VOS_IS_STATUS_SUCCESS( vosStatus ) ) - { - // perform any WMM-related association processing - hdd_wmm_assoc(pAdapter, pRoamInfo, eCSR_BSS_TYPE_INFRASTRUCTURE); + if ( VOS_IS_STATUS_SUCCESS( vosStatus ) ) + { + // perform any WMM-related association processing + hdd_wmm_assoc(pAdapter, pRoamInfo, eCSR_BSS_TYPE_INFRASTRUCTURE); + } + + /* Start the tx queues */ + netif_tx_wake_all_queues(dev); } - else + + if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) ) { - VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_WARN, + VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "Cannot register STA with TL. Failed with vosStatus = %d [%08X]", vosStatus, vosStatus ); } @@ -1507,8 +1520,6 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs vos_mem_zero( &pAdapter->hdd_stats.hddPmfStats, sizeof(pAdapter->hdd_stats.hddPmfStats) ); #endif - // Start the Queue - netif_tx_wake_all_queues(dev); } else { |
