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
This commit is contained in:
Ashish Kumar Dhanotiya
2018-03-27 18:18:52 +05:30
zatwierdzone przez nshrivas
rodzic 1c07d547a0
commit d39c8b55db
4 zmienionych plików z 6 dodań i 20 usunięć

Wyświetl plik

@@ -20605,8 +20605,6 @@ int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy,
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) if (!QDF_IS_STATUS_SUCCESS(qdf_status))
hdd_warn("Deauth wait time expired"); hdd_warn("Deauth wait time expired");
adapter->cache_sta_info[staId].reason_code =
pDelStaParams->reason_code;
} }
} }

Wyświetl plik

@@ -10969,26 +10969,12 @@ QDF_STATUS hdd_softap_sta_deauth(struct hdd_adapter *adapter,
void hdd_softap_sta_disassoc(struct hdd_adapter *adapter, void hdd_softap_sta_disassoc(struct hdd_adapter *adapter,
struct csr_del_sta_params *pDelStaParams) struct csr_del_sta_params *pDelStaParams)
{ {
struct sir_peer_sta_info peer_sta_info;
struct hdd_station_info *stainfo;
hdd_enter(); hdd_enter();
/* Ignore request to disassoc bcmc station */ /* Ignore request to disassoc bcmc station */
if (pDelStaParams->peerMacAddr.bytes[0] & 0x1) if (pDelStaParams->peerMacAddr.bytes[0] & 0x1)
return; 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), wlansap_disassoc_sta(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
pDelStaParams); pDelStaParams);
} }

Wyświetl plik

@@ -1652,7 +1652,7 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
qdf_copy_macaddr(&disassoc_comp->staMac, qdf_copy_macaddr(&disassoc_comp->staMac,
&csr_roaminfo->peerMac); &csr_roaminfo->peerMac);
disassoc_comp->staId = csr_roaminfo->staId; 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; disassoc_comp->reason = eSAP_USR_INITATED_DISASSOC;
else else
disassoc_comp->reason = eSAP_MAC_INITATED_DISASSOC; 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->rssi = csr_roaminfo->rssi;
disassoc_comp->rx_rate = csr_roaminfo->rx_rate; disassoc_comp->rx_rate = csr_roaminfo->rx_rate;
disassoc_comp->tx_rate = csr_roaminfo->tx_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; break;
case eSAP_STA_SET_KEY_EVENT: case eSAP_STA_SET_KEY_EVENT:

Wyświetl plik

@@ -7192,8 +7192,9 @@ static void csr_roam_process_results_default(tpAniSirGlobal mac_ctx,
qdf_mem_copy(roam_info.peerMac.bytes, qdf_mem_copy(roam_info.peerMac.bytes,
cmd->u.roamCmd.peerMac, cmd->u.roamCmd.peerMac,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));
roam_info.reasonCode = cmd->u.roamCmd.reason; roam_info.reasonCode = eCSR_ROAM_RESULT_FORCED;
roam_info.disassoc_reason = eCSR_ROAM_RESULT_FORCED; /* Update the MAC reason code */
roam_info.disassoc_reason = cmd->u.roamCmd.reason;
roam_info.statusCode = eSIR_SME_SUCCESS; roam_info.statusCode = eSIR_SME_SUCCESS;
status = csr_roam_call_callback(mac_ctx, session_id, status = csr_roam_call_callback(mac_ctx, session_id,
&roam_info, cmd->u.roamCmd.roamId, &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.rssi = mac_ctx->peer_rssi;
roam_info.tx_rate = mac_ctx->peer_txrate; roam_info.tx_rate = mac_ctx->peer_txrate;
roam_info.rx_rate = mac_ctx->peer_rxrate; 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, csr_roam_call_callback(mac_ctx, discon_ind->session_id,
&roam_info, 0, eCSR_ROAM_LOSTLINK, &roam_info, 0, eCSR_ROAM_LOSTLINK,