qcacld-3.0: Process SIR_LIM_ADDTS_RSP_TIMEOUT command in defer state

qcacld-2.0 to qcacld-3.0 propagation

If ADDTS response timer is fired because of not receiving ADDTS RSP
within time then this timer handler posts SIR_LIM_ADDTS_RSP_TIMEOUT
command to LIM. But if deferring is enabled(say due to processing any
action frame) then SIR_LIM_ADDTS_RSP_TIMEOUT command will be added to
defer queue and as gLimAddtsSent is set to TRUE, including this
command all other defer commands will never be processed. This may
lead to active command timeout.
Hence process SIR_LIM_ADDTS_RSP_TIMEOUT command in defer state.

Change-Id: I48f09a7fd560702ac7701e0a1a41c77ad94626d4
CRs-Fixed: 919490
diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c
index d6e314e..aa73bca 100644
--- a/core/mac/src/pe/lim/lim_process_message_queue.c
+++ b/core/mac/src/pe/lim/lim_process_message_queue.c
@@ -288,6 +288,19 @@
 		    (limMsg->type != WMA_START_OEM_DATA_RSP) &&
 #endif
 		    (limMsg->type != WMA_ADD_TS_RSP) &&
+		    /*
+		     * LIM won't process any defer queue commands if gLimAddtsSent is
+		     * set to TRUE. gLimAddtsSent will be set TRUE to while sending
+		     * ADDTS REQ. Say, when deferring is enabled, if
+		     * SIR_LIM_ADDTS_RSP_TIMEOUT is posted (because of not receiving ADDTS
+		     * RSP) then this command will be added to defer queue and as
+		     * gLimAddtsSent is set TRUE LIM will never process any commands from
+		     * defer queue, including SIR_LIM_ADDTS_RSP_TIMEOUT. Hence allowing
+		     * SIR_LIM_ADDTS_RSP_TIMEOUT command to be processed with deferring
+		     * enabled, so that this will be processed immediately and sets
+		     * gLimAddtsSent to FALSE.
+		     */
+		    (limMsg->type != SIR_LIM_ADDTS_RSP_TIMEOUT) &&
 		    /* Allow processing of RX frames while awaiting reception
 		     * of ADD TS response over the air. This logic particularly
 		     * handles the case when host sends ADD BA request to FW