Browse Source

qcacld-3.0: Remove WMA_PEER_ASSOC_CNF_START if send peer assoc failed

DUT as SAP and failed to send peer assoc due to peer's assoc request
frame missed HT, VHT, HE capability. Then device broken since of
WMA_ADD_STA_REQ timeout. This changes removes WMA_PEER_ASSOC_CNF_START
for peer assoc failed case and avoid device broken.

Change-Id: Ib897defd4863cd2e996c6bf00bf530c5a2909d16
CRs-Fixed: 3653418
Wu Gao 1 year ago
parent
commit
5fe6b6fc6a
1 changed files with 6 additions and 1 deletions
  1. 6 1
      core/wma/src/wma_dev_if.c

+ 6 - 1
core/wma/src/wma_dev_if.c

@@ -4662,7 +4662,7 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
 	QDF_STATUS status;
 	int32_t ret;
 	struct wma_txrx_node *iface = NULL;
-	struct wma_target_req *msg;
+	struct wma_target_req *msg = NULL;
 	bool peer_assoc_cnf = false;
 	void *soc = cds_get_context(QDF_MODULE_ID_SOC);
 	uint32_t i, j;
@@ -4794,6 +4794,11 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
 	ret = wma_send_peer_assoc(wma, add_sta->nwType, add_sta);
 	if (ret) {
 		add_sta->status = QDF_STATUS_E_FAILURE;
+		if (msg) {
+			wma_remove_req(wma, add_sta->smesessionId,
+				       WMA_PEER_ASSOC_CNF_START);
+			peer_assoc_cnf = false;
+		}
 		wma_remove_peer(wma, add_sta->staMac, add_sta->smesessionId,
 				false);
 		goto send_rsp;