summaryrefslogtreecommitdiff
path: root/core/sme/src/csr/csr_api_roam.c
diff options
context:
space:
mode:
authorYeshwanth Sriram Guntuka <ysriramg@codeaurora.org>2018-07-31 18:28:32 +0530
committerIsaac Chiou <isaacchiou@google.com>2019-12-06 03:25:44 +0000
commit022fab7cb97b18237c68aefcc70bdcd2f58cffc1 (patch)
tree4b2b02e2a454ca5dbf6a4c12960018afeea41e52 /core/sme/src/csr/csr_api_roam.c
parentf8f6cc6cfc95261f411d5538b38d79838304b2db (diff)
downloadqcacld-022fab7cb97b18237c68aefcc70bdcd2f58cffc1.tar.gz
qcacld-3.0: Avoid queuing multiple WM status change cmd for same peer
In SAP mode, one peer sends multiple deauth frames which results in queuing multiple WM status change cmd which is added at head of queue. WM status change cmd is added at head of queue for other peers which results in delay in processing the cmd for first peer. The WM status cmd is processed and peer is deleted and connection is initiated by the same peer. The remaining WM status change cmd is now processed and del_sta is triggered. On receiving del_sta response, cleanup_trigger in sta_ds is checked and eWNI_SME_DISASSOC_RSP message is posted to SME instead of eWNI_SME_DISCONNECT_DONE_IND since the sta_ds entry is added newly. This will result in active command timeout since WM status change cmd is not removed from active queue. Fix is to drop deauth or disassoc frame after the first one is processed and use normal priority to queue WM status change cmd. bug: 141690880 Change-Id: Ib87fa7496d4adb6e25c30de657ce62101ca6f263 CRs-Fixed: 2291442 Signed-off-by: Isaac Chiou <isaacchiou@google.com>
Diffstat (limited to 'core/sme/src/csr/csr_api_roam.c')
-rw-r--r--core/sme/src/csr/csr_api_roam.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index a137c90a09..1c924e08fc 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -11348,7 +11348,7 @@ bool csr_roam_issue_wm_status_change(tpAniSirGlobal pMac, uint32_t sessionId,
DeauthIndMsg));
}
if (QDF_IS_STATUS_SUCCESS
- (csr_queue_sme_command(pMac, pCommand, true))) {
+ (csr_queue_sme_command(pMac, pCommand, false))) {
fCommandQueued = true;
} else {
sme_err(" fail to send message ");