From e9199ab7c701cd5ebd1b6ca184a64242c67bb2c7 Mon Sep 17 00:00:00 2001 From: "Selvaraj, Sridhar" Date: Wed, 14 Sep 2016 17:13:22 +0530 Subject: [PATCH] qcacld-3.0: Fix to send TDLS frames on peer sta index qcacld-2.0 to qcacld-3.0 propagation Currently, After p2p disconnection system role changes to unknown and due to which tx flag uses self station index which would send TDLS frames on self station index thus leading to TDLS connection failure after p2p session teardown. Fix is to use peer station index in tx flag while sending TDLS frames except TDLS discovery response which should go on self station index. Change-Id: I87ea8806a47730b553055e47bb3e7bdf0266b48f CRs-Fixed: 970761 --- core/mac/src/pe/lim/lim_process_tdls.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index 58a0addfb16e..1e87bd405276 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -520,14 +520,16 @@ tSirRetStatus lim_send_tdls_dis_req_frame(tpAniSirGlobal pMac, MAC_ADDR_ARRAY(peer_mac.bytes)); pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId; - qdf_status = wma_tx_frameWithTxComplete(pMac, pPacket, (uint16_t) nBytes, - TXRX_FRM_802_11_DATA, - ANI_TXDIR_TODS, - TID_AC_VI, - lim_tx_complete, pFrame, - lim_mgmt_tdls_tx_complete, - HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME, - smeSessionId, false, 0); + qdf_status = wma_tx_frameWithTxComplete(pMac, pPacket, + (uint16_t) nBytes, + TXRX_FRM_802_11_DATA, + ANI_TXDIR_TODS, + TID_AC_VI, + lim_tx_complete, pFrame, + lim_mgmt_tdls_tx_complete, + HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME | + HAL_USE_PEER_STA_REQUESTED_MASK, + smeSessionId, false, 0); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { pMac->lim.tdls_frm_session_id = NO_SESSION; lim_log(pMac, LOGE, @@ -935,7 +937,8 @@ wma_tx_frame_with_tx_complete_send(tpAniSirGlobal pMac, void *pPacket, tid, lim_tx_complete, pFrame, lim_mgmt_tdls_tx_complete, - HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME, + HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME + | HAL_USE_PEER_STA_REQUESTED_MASK, smeSessionId, flag, 0); } #else @@ -954,7 +957,8 @@ wma_tx_frame_with_tx_complete_send(tpAniSirGlobal pMac, void *pPacket, tid, lim_tx_complete, pFrame, lim_mgmt_tdls_tx_complete, - HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME, + HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME + | HAL_USE_PEER_STA_REQUESTED_MASK, smeSessionId, false, 0); } #endif