summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@codeaurora.org>2016-10-05 19:45:07 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-10-07 18:46:05 -0700
commitae6ae24d5000bbebe078b9303c4e6bc8b8d28b21 (patch)
tree80484ea3af55ede66b34cfc58552ebb021ffac4e
parente62940e9d65f84deddfd9a70cf63ea90a7e2d69e (diff)
qcacld-3.0: Fix mgmtFrameSessionId in lim_send_p2p_action_frame
Cleanup as part of lim_p2p_action_cnf triggers only when mgmtFrameSessionId is not 0xff. If cleanup does not happen in error scenario, it can result in not clearing cfgState->buf which can lead to dropping of further action frames in __wlan_hdd_mgmt_tx. Fix this by filling mgmtFrameSessionId with proper session id. Change-Id: Icc0f5b576ff71776dc448a673b6e12defe0c514e CRs-Fixed: 1074565
-rw-r--r--core/mac/src/pe/lim/lim_p2p.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/mac/src/pe/lim/lim_p2p.c b/core/mac/src/pe/lim/lim_p2p.c
index 9485f127d6e1..096f78a16581 100644
--- a/core/mac/src/pe/lim/lim_p2p.c
+++ b/core/mac/src/pe/lim/lim_p2p.c
@@ -468,6 +468,7 @@ static void lim_tx_action_frame(tpAniSirGlobal mac_ctx,
* need to go at OFDM rates. And BD rate2 we configured at 6Mbps.
*/
tx_flag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
+ mac_ctx->lim.mgmtFrameSessionId = sme_session_id;
if ((SIR_MAC_MGMT_PROBE_RSP == fc->subType) ||
(mb_msg->noack)) {
@@ -483,7 +484,6 @@ static void lim_tx_action_frame(tpAniSirGlobal mac_ctx,
true : false);
mac_ctx->lim.mgmtFrameSessionId = 0xff;
} else {
- mac_ctx->lim.mgmtFrameSessionId = mb_msg->sessionId;
qdf_status =
wma_tx_frameWithTxComplete(mac_ctx, packet,
(uint16_t) msg_len,
@@ -550,7 +550,9 @@ void lim_send_p2p_action_frame(tpAniSirGlobal mac_ctx,
if ((!mac_ctx->lim.gpLimRemainOnChanReq) && (0 != mb_msg->wait)) {
lim_log(mac_ctx, LOGE,
FL("RemainOnChannel is not running"));
+ mac_ctx->lim.mgmtFrameSessionId = mb_msg->sessionId;
lim_p2p_action_cnf(mac_ctx, false);
+ mac_ctx->lim.mgmtFrameSessionId = 0xff;
return;
}
sme_session_id = mb_msg->sessionId;