diff options
| author | Deepthi Gowri <c_gowri@qti.qualcomm.com> | 2015-06-11 12:09:26 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-06-18 07:13:46 -0700 |
| commit | 8fe8acadad0a4a9b66b0c19fa74876b4b4e38238 (patch) | |
| tree | d84b2e0e6814d910b417a126392515bce8e7ad47 | |
| parent | 33a3aecf9a53eed538890eee0024d79c218f1550 (diff) | |
qcacld2.0: Pass the correct reason code to disassoc.
use the same reason code in the disassoc, which the upper
layer has passed to the driver.
Change-Id: I6302a5c8318a8e3c1221b9272637455da4e7f150
CRs-Fixed: 852387
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_hostapd.h | 2 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_hostapd.c | 17 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 9 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_tx_rx.c | 9 | ||||
| -rw-r--r-- | CORE/SAP/inc/sapApi.h | 2 | ||||
| -rw-r--r-- | CORE/SAP/src/sapModule.c | 4 | ||||
| -rw-r--r-- | CORE/SME/inc/sme_Api.h | 2 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 11 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrInsideApi.h | 3 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 5 |
11 files changed, 44 insertions, 26 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_hostapd.h b/CORE/HDD/inc/wlan_hdd_hostapd.h index 7b9fdac79d3d..11d74a1b0d74 100644 --- a/CORE/HDD/inc/wlan_hdd_hostapd.h +++ b/CORE/HDD/inc/wlan_hdd_hostapd.h @@ -77,7 +77,7 @@ eCsrEncryptionType hdd_TranslateWPAToCsrEncryptionType(u_int8_t cipher_suite[4]); VOS_STATUS hdd_softap_sta_deauth(hdd_adapter_t*, struct tagCsrDelStaParams*); -void hdd_softap_sta_disassoc(hdd_adapter_t*,v_U8_t*); +void hdd_softap_sta_disassoc(hdd_adapter_t*, struct tagCsrDelStaParams*); void hdd_softap_tkip_mic_fail_counter_measure(hdd_adapter_t*,v_BOOL_t); int hdd_softap_unpackIE( tHalHandle halHandle, eCsrEncryptionType *pEncryptType, diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 5cbaf7e24b52..1ddff4fe2edb 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -16976,8 +16976,8 @@ static int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, /* Send disassoc and deauth both to avoid some IOT issues */ vos_event_reset(&pHostapdState->vosEvent); - hdd_softap_sta_disassoc(pAdapter, - pDelStaParams->peerMacAddr); + hdd_softap_sta_disassoc(pAdapter, pDelStaParams); + vos_status = hdd_softap_sta_deauth(pAdapter, pDelStaParams); if (VOS_IS_STATUS_SUCCESS(vos_status)) { pAdapter->aStaInfo[i].isDeauthInProgress = TRUE; @@ -17022,7 +17022,7 @@ static int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, /* Send disassoc and deauth both to avoid some IOT issues */ vos_event_reset(&pHostapdState->vosEvent); - hdd_softap_sta_disassoc(pAdapter, pDelStaParams->peerMacAddr); + hdd_softap_sta_disassoc(pAdapter, pDelStaParams); vos_status = hdd_softap_sta_deauth(pAdapter, pDelStaParams); if (!VOS_IS_STATUS_SUCCESS(vos_status)) { pAdapter->aStaInfo[staId].isDeauthInProgress = FALSE; diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c index 8cd62d35ea9c..c11483b06f3c 100644 --- a/CORE/HDD/src/wlan_hdd_hostapd.c +++ b/CORE/HDD/src/wlan_hdd_hostapd.c @@ -785,6 +785,7 @@ void hdd_clear_all_sta(hdd_adapter_t *pHostapdAdapter, v_PVOID_t usrDataForCallb { v_U8_t staId = 0; struct net_device *dev; + struct tagCsrDelStaParams delStaParams; dev = (struct net_device *)usrDataForCallback; hddLog(LOGE, FL("Clearing all the STA entry....")); @@ -793,8 +794,12 @@ void hdd_clear_all_sta(hdd_adapter_t *pHostapdAdapter, v_PVOID_t usrDataForCallb if ( pHostapdAdapter->aStaInfo[staId].isUsed && ( staId != (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->uBCStaId)) { + WLANSAP_PopulateDelStaParams(&pHostapdAdapter->aStaInfo[staId].macAddrSTA.bytes[0], + eSIR_MAC_DEAUTH_LEAVING_BSS_REASON, + (SIR_MAC_MGMT_DISASSOC >> 4), + &delStaParams); //Disconnect all the stations - hdd_softap_sta_disassoc(pHostapdAdapter, &pHostapdAdapter->aStaInfo[staId].macAddrSTA.bytes[0]); + hdd_softap_sta_disassoc(pHostapdAdapter, &delStaParams); } } } @@ -3898,6 +3903,7 @@ static __iw_softap_disassoc_sta(struct net_device *dev, { hdd_adapter_t *pHostapdAdapter = (netdev_priv(dev)); v_U8_t *peerMacAddr; + struct tagCsrDelStaParams delStaParams; ENTER(); /* iwpriv tool or framework calls this ioctl with @@ -3907,7 +3913,14 @@ static __iw_softap_disassoc_sta(struct net_device *dev, hddLog(LOG1, "%s data " MAC_ADDRESS_STR, __func__, MAC_ADDR_ARRAY(peerMacAddr)); - hdd_softap_sta_disassoc(pHostapdAdapter, peerMacAddr); + + + WLANSAP_PopulateDelStaParams(peerMacAddr, + eSIR_MAC_DEAUTH_LEAVING_BSS_REASON, + (SIR_MAC_MGMT_DISASSOC >> 4), + &delStaParams); + + hdd_softap_sta_disassoc(pHostapdAdapter, &delStaParams); EXIT(); return 0; } diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 35891b74c9db..336407ba8de6 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -12634,7 +12634,8 @@ VOS_STATUS hdd_softap_sta_deauth(hdd_adapter_t *pAdapter, --------------------------------------------------------------------------*/ -void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter,v_U8_t *pDestMacAddress) +void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter, + struct tagCsrDelStaParams *pDelStaParams) { #ifndef WLAN_FEATURE_MBSSID v_CONTEXT_t pVosContext = (WLAN_HDD_GET_CTX(pAdapter))->pvosContext; @@ -12645,13 +12646,13 @@ void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter,v_U8_t *pDestMacAddress) hddLog( LOGE, "hdd_softap_sta_disassoc:(%p, false)", (WLAN_HDD_GET_CTX(pAdapter))->pvosContext); //Ignore request to disassoc bcmc station - if( pDestMacAddress[0] & 0x1 ) + if( pDelStaParams->peerMacAddr[0] & 0x1 ) return; #ifdef WLAN_FEATURE_MBSSID - WLANSAP_DisassocSta(WLAN_HDD_GET_SAP_CTX_PTR(pAdapter), pDestMacAddress); + WLANSAP_DisassocSta(WLAN_HDD_GET_SAP_CTX_PTR(pAdapter), pDelStaParams); #else - WLANSAP_DisassocSta(pVosContext,pDestMacAddress); + WLANSAP_DisassocSta(pVosContext, pDelStaParams); #endif } diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c index 07d42d665d66..b54989816c59 100644 --- a/CORE/HDD/src/wlan_hdd_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_tx_rx.c @@ -371,6 +371,7 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter) struct ieee80211_hdr *hdr; hdd_context_t *hdd_ctx; int ret = 0; + struct tagCsrDelStaParams delStaParams; if (pAdapter == NULL) { @@ -435,8 +436,6 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter) if( (hdr->frame_control & HDD_FRAME_SUBTYPE_MASK) == HDD_FRAME_SUBTYPE_DEAUTH ) { - struct tagCsrDelStaParams delStaParams; - WLANSAP_PopulateDelStaParams(hdr->addr1, eSIR_MAC_DEAUTH_LEAVING_BSS_REASON, (SIR_MAC_MGMT_DEAUTH >> 4), &delStaParams); @@ -446,7 +445,11 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter) else if( (hdr->frame_control & HDD_FRAME_SUBTYPE_MASK) == HDD_FRAME_SUBTYPE_DISASSOC ) { - hdd_softap_sta_disassoc( pAdapter, hdr->addr1 ); + WLANSAP_PopulateDelStaParams(hdr->addr1, + eSIR_MAC_DEAUTH_LEAVING_BSS_REASON, + (SIR_MAC_MGMT_DISASSOC >> 4), + &delStaParams); + hdd_softap_sta_disassoc( pAdapter, &delStaParams ); goto mgmt_handled; } } diff --git a/CORE/SAP/inc/sapApi.h b/CORE/SAP/inc/sapApi.h index 4a0fcd014d11..4ddd27fdeadd 100644 --- a/CORE/SAP/inc/sapApi.h +++ b/CORE/SAP/inc/sapApi.h @@ -1217,7 +1217,7 @@ VOS_STATUS WLANSAP_DisassocSta ( v_PVOID_t pvosGCtx, - const v_U8_t *pPeerStaMac + struct tagCsrDelStaParams *pDelStaParams ); /*========================================================================== diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c index 5caf7c80e33f..4b4e861673f7 100644 --- a/CORE/SAP/src/sapModule.c +++ b/CORE/SAP/src/sapModule.c @@ -1576,7 +1576,7 @@ VOS_STATUS WLANSAP_DisassocSta ( v_PVOID_t pCtx, - const v_U8_t *pPeerStaMac + struct tagCsrDelStaParams *pDelStaParams ) { ptSapContext pSapCtx = VOS_GET_SAP_CB(pCtx); @@ -1593,7 +1593,7 @@ WLANSAP_DisassocSta } sme_RoamDisconnectSta(VOS_GET_HAL_CB(pSapCtx->pvosGCtx), pSapCtx->sessionId, - pPeerStaMac); + pDelStaParams); return VOS_STATUS_SUCCESS; } diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h index 74deacfb5ded..4825ca3057a4 100644 --- a/CORE/SME/inc/sme_Api.h +++ b/CORE/SME/inc/sme_Api.h @@ -771,7 +771,7 @@ eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId, \return eHalStatus SUCCESS Roam callback will be called to indicate actual results -------------------------------------------------------------------------------*/ eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, - const tANI_U8 *pPeerMacAddr); + struct tagCsrDelStaParams *pDelStaParams); /* --------------------------------------------------------------------------- \fn sme_RoamDeauthSta diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index f74989ca35e6..befd30e949e9 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -2907,8 +2907,9 @@ eHalStatus csrRoamIssueDisassociate( tpAniSirGlobal pMac, tANI_U32 sessionId, ---------------------------------------------------------------------------*/ eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac, tANI_U32 sessionId, - const tANI_U8 *pPeerMacAddr, - tANI_U32 reason) + struct tagCsrDelStaParams + *pDelStaParams) + { eHalStatus status = eHAL_STATUS_SUCCESS; tSmeCmd *pCommand; @@ -2925,8 +2926,10 @@ eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac, pCommand->command = eSmeCommandRoam; pCommand->sessionId = (tANI_U8)sessionId; pCommand->u.roamCmd.roamReason = eCsrForcedDisassocSta; - vos_mem_copy(pCommand->u.roamCmd.peerMac, pPeerMacAddr, 6); - pCommand->u.roamCmd.reason = (tSirMacReasonCodes)reason; + vos_mem_copy(pCommand->u.roamCmd.peerMac, pDelStaParams->peerMacAddr, + sizeof(tSirMacAddr)); + pCommand->u.roamCmd.reason = + (tSirMacReasonCodes)pDelStaParams->reason_code; status = csrQueueSmeCommand(pMac, pCommand, eANI_BOOLEAN_FALSE); if( !HAL_STATUS_SUCCESS( status ) ) { diff --git a/CORE/SME/src/csr/csrInsideApi.h b/CORE/SME/src/csr/csrInsideApi.h index aa4a168eec4f..f04f6da6e76b 100644 --- a/CORE/SME/src/csr/csrInsideApi.h +++ b/CORE/SME/src/csr/csrInsideApi.h @@ -946,8 +946,7 @@ void csrCallRoamingCompletionCallback(tpAniSirGlobal pMac, tCsrRoamSession *pSes ---------------------------------------------------------------------------*/ eHalStatus csrRoamIssueDisassociateStaCmd(tpAniSirGlobal pMac, tANI_U32 sessionId, - const tANI_U8 *pPeerMacAddr, - tANI_U32 reason); + struct tagCsrDelStaParams *pDelStaParams); /* --------------------------------------------------------------------------- \fn csrRoamIssueDeauthSta diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index 8bfcc7066fed..9a3de18b498f 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -4117,7 +4117,7 @@ eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId) \return eHalStatus SUCCESS Roam callback will be called to indicate actual results -------------------------------------------------------------------------------*/ eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, - const tANI_U8 *pPeerMacAddr) + struct tagCsrDelStaParams *pDelStaParams) { eHalStatus status = eHAL_STATUS_FAILURE; tpAniSirGlobal pMac = PMAC_STRUCT( hHal ); @@ -4133,8 +4133,7 @@ eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId, { if( CSR_IS_SESSION_VALID( pMac, sessionId ) ) { - status = csrRoamIssueDisassociateStaCmd( pMac, sessionId, pPeerMacAddr, - eSIR_MAC_DEAUTH_LEAVING_BSS_REASON); + status = csrRoamIssueDisassociateStaCmd( pMac, sessionId, pDelStaParams); } else { |
