qcacld-3.0: use tdls_frm_session_id while sending resp to sme

This change addresses below two issues.
1) pe session entry may not exist in some cases where PE receives
   ack cnf after deleting the pe session. So use
   "lim.tdls_frm_session_id" instead of peSessionId while sending
   the tdls mgmt frames.

2) PE sends eWNI_SME_TDLS_SEND_MGMT_RSP with failure status to SME
   if mgmt tx fails before calling WDA_TxPacket. But SME is
   ignoring this failure and not indicating ack conf failure to HDD.

Change-Id: I089be87fef71ebfb0327c47a301aaf5ede59d031
CRs-Fixed: 887676
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 1a5d46f..ea04082 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -515,24 +515,15 @@
 					    uint32_t tx_complete,
 					    void *params)
 {
-	tpPESession session_entry = NULL;
 	tpAniSirGlobal mac_ctx = (tpAniSirGlobal)context;
 
 	lim_log(mac_ctx, LOG1, FL("tdls_frm_session_id %x tx_complete %x"),
 		mac_ctx->lim.tdls_frm_session_id, tx_complete);
 
 	if (NO_SESSION != mac_ctx->lim.tdls_frm_session_id) {
-		session_entry = pe_find_session_by_session_id(mac_ctx,
-					mac_ctx->lim.tdls_frm_session_id);
-		if (!session_entry) {
-			lim_log(mac_ctx, LOGE, FL("session id %d is not found"),
-				mac_ctx->lim.tdls_frm_session_id);
-			if (buf)
-				qdf_nbuf_free(buf);
-			return QDF_STATUS_E_FAILURE;
-		}
-		lim_send_sme_mgmt_tx_completion(mac_ctx, session_entry,
-						tx_complete);
+		lim_send_sme_mgmt_tx_completion(mac_ctx,
+				mac_ctx->lim.tdls_frm_session_id,
+				tx_complete);
 		mac_ctx->lim.tdls_frm_session_id = NO_SESSION;
 	}
 
@@ -711,7 +702,7 @@
 		lim_trace_tdls_action_string(SIR_MAC_TDLS_DIS_REQ),
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 	qdf_status = wma_tx_frameWithTxComplete(pMac, pPacket,
 					(uint16_t) nBytes,
 					TXRX_FRM_802_11_DATA,
@@ -1031,7 +1022,7 @@
 		lim_trace_tdls_action_string(SIR_MAC_TDLS_DIS_RSP),
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 	/*
 	 * Transmit Discovery response and watch if this is delivered to
 	 * peer STA.
@@ -1425,7 +1416,7 @@
 		lim_trace_tdls_action_string(SIR_MAC_TDLS_SETUP_REQ),
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 
 	qdf_status = wma_tx_frame_with_tx_complete_send(pMac, pPacket,
 						     (uint16_t) nBytes,
@@ -1635,7 +1626,7 @@
 		    "DIRECT"),
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 
 	qdf_status = wma_tx_frame_with_tx_complete_send(pMac, pPacket,
 						     (uint16_t) nBytes,
@@ -1913,7 +1904,7 @@
 		lim_trace_tdls_action_string(SIR_MAC_TDLS_SETUP_RSP),
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 
 	qdf_status = wma_tx_frame_with_tx_complete_send(pMac, pPacket,
 						     (uint16_t) nBytes,
@@ -2130,7 +2121,7 @@
 		lim_trace_tdls_action_string(SIR_MAC_TDLS_SETUP_CNF),
 	       MAC_ADDR_ARRAY(peer_mac.bytes));
 
-	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
+	pMac->lim.tdls_frm_session_id = psessionEntry->smeSessionId;
 
 	qdf_status = wma_tx_frame_with_tx_complete_send(pMac, pPacket,
 						     (uint16_t) nBytes,