From 1ac1276b1a209dfb3011cb5968bb4c8828f4083c Mon Sep 17 00:00:00 2001 From: Sheenam Monga Date: Wed, 16 Mar 2022 11:45:51 +0530 Subject: [PATCH] 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 --- core/mac/src/pe/lim/lim_process_mlm_req_messages.c | 4 +++- core/mac/src/pe/lim/lim_send_management_frames.c | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c index 0649ac4f6d..2d9fdafadb 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-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 @@ -68,6 +68,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: @@ -82,6 +83,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: diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 60496afae1..e3ff4db114 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -5993,7 +5993,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); if (fc->subType == SIR_MAC_MGMT_AUTH && @@ -6148,6 +6147,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); }