Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 552762f7 authored by Sheenam Monga's avatar Sheenam Monga Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Provide correct status code in case of no ack

Currently, LIM_ACK_NOT_RCD is not handled while filling
status code due to which STATUS_UNSPECIFIED_FAILURE is
updated as part of default handling instead of
STATUS_AUTH_NO_ACK_RECEIVED. Don't overwrite previous
status code in case no ack received from peer.

Fix is to Handle LIM_ACK_NOT_RCD case while filling status
code and consider previous status code when no ack received
from peer.

Change-Id: I366d63ee3ff6abf8a36300451e7f0c46fcf47e39
CRs-Fixed: 3151992
parent cf33d731
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -65,6 +66,7 @@ static void lim_fill_status_code(uint8_t frame_type,
			*proto_status_code = STATUS_AUTH_TX_FAIL;
			break;
		case LIM_ACK_RCD_FAILURE:
		case LIM_ACK_NOT_RCD:
			*proto_status_code = STATUS_AUTH_NO_ACK_RECEIVED;
			break;
		case LIM_ACK_RCD_SUCCESS:
@@ -79,6 +81,7 @@ static void lim_fill_status_code(uint8_t frame_type,
			*proto_status_code = STATUS_ASSOC_TX_FAIL;
			break;
		case LIM_ACK_RCD_FAILURE:
		case LIM_ACK_NOT_RCD:
			*proto_status_code = STATUS_ASSOC_NO_ACK_RECEIVED;
			break;
		case LIM_ACK_RCD_SUCCESS:
+1 −2
Original line number Diff line number Diff line
@@ -5712,7 +5712,6 @@ static void lim_tx_mgmt_frame(struct mac_context *mac_ctx, uint8_t vdev_id,
	qdf_mtrace(QDF_MODULE_ID_PE, QDF_MODULE_ID_WMA, TRACE_CODE_TX_MGMT,
		   session->peSessionId, 0);

	mac_ctx->auth_ack_status = LIM_ACK_NOT_RCD;
	min_rid = lim_get_min_session_txrate(session);

	qdf_status = wma_tx_frameWithTxComplete(mac_ctx, packet,
@@ -5842,6 +5841,6 @@ void lim_send_mgmt_frame_tx(struct mac_context *mac_ctx,
			lim_handle_sae_auth_retry(mac_ctx, vdev_id,
						  mb_msg->data, msg_len);
	}

	mac_ctx->auth_ack_status = LIM_ACK_NOT_RCD;
	lim_send_frame(mac_ctx, vdev_id, mb_msg->data, msg_len);
}