From d39c8b55db60a2c17a31fcb63424c8fc3e6df1a4 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Dhanotiya Date: Tue, 27 Mar 2018 18:18:52 +0530 Subject: [PATCH] qcacld-3.0: Update correct reason code on receiving del sta On receiving del station command, SAP is not updating the del station reason code properly in station info. Update the correct reason code in station info whenever a del station or deauth station event comes. Change-Id: I2004dc21f18682dbc7dee488e7b55bfccd0d242a CRs-Fixed: 2178538 --- core/hdd/src/wlan_hdd_cfg80211.c | 2 -- core/hdd/src/wlan_hdd_main.c | 14 -------------- core/sap/src/sap_fsm.c | 4 ++-- core/sme/src/csr/csr_api_roam.c | 6 ++++-- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 6c40e37f774d..b82d3c824ccd 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -20605,8 +20605,6 @@ int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, if (!QDF_IS_STATUS_SUCCESS(qdf_status)) hdd_warn("Deauth wait time expired"); - adapter->cache_sta_info[staId].reason_code = - pDelStaParams->reason_code; } } diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 05f26db2c31e..510e1b8553c1 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -10969,26 +10969,12 @@ QDF_STATUS hdd_softap_sta_deauth(struct hdd_adapter *adapter, void hdd_softap_sta_disassoc(struct hdd_adapter *adapter, struct csr_del_sta_params *pDelStaParams) { - struct sir_peer_sta_info peer_sta_info; - struct hdd_station_info *stainfo; - hdd_enter(); /* Ignore request to disassoc bcmc station */ if (pDelStaParams->peerMacAddr.bytes[0] & 0x1) return; - wlan_hdd_get_peer_rssi(adapter, &pDelStaParams->peerMacAddr, - &peer_sta_info); - stainfo = hdd_get_stainfo(adapter->cache_sta_info, - pDelStaParams->peerMacAddr); - if (stainfo) { - stainfo->rssi = peer_sta_info.info[0].rssi; - stainfo->tx_rate = peer_sta_info.info[0].tx_rate; - stainfo->rx_rate = peer_sta_info.info[0].rx_rate; - stainfo->reason_code = pDelStaParams->reason_code; - } - wlansap_disassoc_sta(WLAN_HDD_GET_SAP_CTX_PTR(adapter), pDelStaParams); } diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 3e69138880c4..0a99d32140a4 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -1652,7 +1652,7 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx, qdf_copy_macaddr(&disassoc_comp->staMac, &csr_roaminfo->peerMac); disassoc_comp->staId = csr_roaminfo->staId; - if (csr_roaminfo->disassoc_reason == eCSR_ROAM_RESULT_FORCED) + if (csr_roaminfo->reasonCode == eCSR_ROAM_RESULT_FORCED) disassoc_comp->reason = eSAP_USR_INITATED_DISASSOC; else disassoc_comp->reason = eSAP_MAC_INITATED_DISASSOC; @@ -1662,7 +1662,7 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx, disassoc_comp->rssi = csr_roaminfo->rssi; disassoc_comp->rx_rate = csr_roaminfo->rx_rate; disassoc_comp->tx_rate = csr_roaminfo->tx_rate; - disassoc_comp->reason_code = csr_roaminfo->reasonCode; + disassoc_comp->reason_code = csr_roaminfo->disassoc_reason; break; case eSAP_STA_SET_KEY_EVENT: diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 78599acf5c0d..9e0198008803 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -7192,8 +7192,9 @@ static void csr_roam_process_results_default(tpAniSirGlobal mac_ctx, qdf_mem_copy(roam_info.peerMac.bytes, cmd->u.roamCmd.peerMac, sizeof(tSirMacAddr)); - roam_info.reasonCode = cmd->u.roamCmd.reason; - roam_info.disassoc_reason = eCSR_ROAM_RESULT_FORCED; + roam_info.reasonCode = eCSR_ROAM_RESULT_FORCED; + /* Update the MAC reason code */ + roam_info.disassoc_reason = cmd->u.roamCmd.reason; roam_info.statusCode = eSIR_SME_SUCCESS; status = csr_roam_call_callback(mac_ctx, session_id, &roam_info, cmd->u.roamCmd.roamId, @@ -11756,6 +11757,7 @@ csr_roam_send_disconnect_done_indication(tpAniSirGlobal mac_ctx, tSirSmeRsp roam_info.rssi = mac_ctx->peer_rssi; roam_info.tx_rate = mac_ctx->peer_txrate; roam_info.rx_rate = mac_ctx->peer_rxrate; + roam_info.disassoc_reason = discon_ind->reason_code; csr_roam_call_callback(mac_ctx, discon_ind->session_id, &roam_info, 0, eCSR_ROAM_LOSTLINK,