Ver Fonte

qcacld-3.0: Handle peer assoc failure

Peer assoc command expects a response from firmware so peer
assoc timer is started at wma once command sent to firmware.
In the failure scenario peer assoc command is dropped at wma due to
unavilable 11b rates but timer was not stopped. So at later point of
time timer got expired and it triggered timeout error handling.

Dont start the timer in failure scenario and send failure response to LIM
if the peer assoc command failed to send command to firmware.

Change-Id: Iaa644fbe7940502fc07b5110787c2dc5b58f4612
CRs-Fixed: 2292610
Sandeep Puligilla há 6 anos atrás
pai
commit
c3588e5f57
1 ficheiros alterados com 8 adições e 5 exclusões
  1. 8 5
      core/wma/src/wma_dev_if.c

+ 8 - 5
core/wma/src/wma_dev_if.c

@@ -4411,15 +4411,18 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
 		else
 			WMA_LOGD("Sent PKT_PWR_SAVE_5G_EBT cmd to target, val = %x, status = %d",
 				pps_val, status);
-		wma_send_peer_assoc(wma, add_bss->nwType,
-					    &add_bss->staContext);
-		/* we just had peer assoc, so install key will be done later */
+		status = wma_send_peer_assoc(wma, add_bss->nwType,
+					     &add_bss->staContext);
+		if (QDF_IS_STATUS_ERROR(status)) {
+			WMA_LOGE("Failed to send peer assoc status:%d", status);
+			goto peer_cleanup;
+		}
+		peer_assoc_sent = true;
 
+		/* we just had peer assoc, so install key will be done later */
 		if (add_bss->staContext.encryptType != eSIR_ED_NONE)
 			iface->is_waiting_for_key = true;
 
-		peer_assoc_sent = true;
-
 		if (add_bss->rmfEnabled)
 			wma_set_mgmt_frame_protection(wma);