Эх сурвалжийг харах

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
Ashish Kumar Dhanotiya 7 жил өмнө
parent
commit
d39c8b55db

+ 0 - 2
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;
 		}
 	}
 

+ 0 - 14
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);
 }

+ 2 - 2
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:

+ 4 - 2
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,