Bläddra i källkod

qcacld-3.0: Update proper mgmt tx complete status in host

FW updates the mgmt tx packet status to host using tx complete event,
enum WMI_MGMT_TX_COMP_STATUS_TYPE. Presently host checks for enum
WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK as mgmt tx success and for rest all
status enums treats as NO_ACK. As FW can drop mgmt frames and updates
host with WMI_MGMT_TX_COMP_TYPE_DISCARD or WMI_MGMT_TX_COMP_TYPE_INSPECT
which is not equivalent to NO_ACK.
Hence update proper value of mgmt tx complete status in host from the mgmt
tx complete event.

Change-Id: Id507a85c4b4dec407eae0626488b92e4db5eb5ec
CRs-Fixed: 2827138
Abhishek Ambure 4 år sedan
förälder
incheckning
5de51e4e11
1 ändrade filer med 11 tillägg och 2 borttagningar
  1. 11 2
      core/mac/src/pe/lim/lim_send_management_frames.c

+ 11 - 2
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -1895,11 +1895,16 @@ static QDF_STATUS lim_assoc_tx_complete_cnf(void *context,
 		assoc_ack_status = ACKED;
 		reason_code = QDF_STATUS_SUCCESS;
 		mac_ctx->assoc_ack_status = LIM_ACK_RCD_SUCCESS;
-	} else {
+	} else if (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_NO_ACK) {
 		assoc_ack_status = NOT_ACKED;
 		reason_code = QDF_STATUS_E_FAILURE;
 		mac_ctx->assoc_ack_status = LIM_ACK_RCD_FAILURE;
+	} else {
+		assoc_ack_status = SENT_FAIL;
+		reason_code = QDF_STATUS_E_FAILURE;
+		mac_ctx->assoc_ack_status = LIM_TX_FAILED;
 	}
+
 	if (buf)
 		qdf_nbuf_free(buf);
 
@@ -2776,10 +2781,14 @@ static QDF_STATUS lim_auth_tx_complete_cnf(void *context,
 		if (!sae_auth_acked)
 			lim_deactivate_and_change_timer(mac_ctx,
 							eLIM_AUTH_RETRY_TIMER);
-	} else {
+	} else if (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_NO_ACK) {
 		mac_ctx->auth_ack_status = LIM_ACK_RCD_FAILURE;
 		auth_ack_status = NOT_ACKED;
 		reason_code = QDF_STATUS_E_FAILURE;
+	} else {
+		mac_ctx->auth_ack_status = LIM_TX_FAILED;
+		auth_ack_status = SENT_FAIL;
+		reason_code = QDF_STATUS_E_FAILURE;
 	}
 
 	if (buf)