diff options
| author | Nitesh Shah <niteshs@codeaurora.org> | 2017-01-31 11:08:56 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-03-03 16:34:51 -0800 |
| commit | 67abb24cbb0f4c516f44b30fe7f4f689b376cbe2 (patch) | |
| tree | 2b5795b018b1f53e9e5074d496640eb03eaa55db | |
| parent | 3ae641da9edef774c19d48f1a2e8eda3570da2dd (diff) | |
qcacld-3.0: Add mutex lock argument for the tdls function
The function wlan_hdd_tdls_indicate_teardown() calls
wlan_hdd_tdls_set_peer_link_status() with need_mutex
agrument as TRUE.
This change passes mutex argument to the function
wlan_hdd_tdls_indicate_teardown() that inturn passes
to wlan_hdd_tdls_set_peer_link_status() for need_mutex
argument.
Change-Id: I96400c00470dba7ae5ba9ad26142c7c5aaf2feb7
CRs-Fixed: 1115911
| -rw-r--r-- | core/hdd/inc/wlan_hdd_tdls.h | 2 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 6 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_tdls.c | 28 |
3 files changed, 22 insertions, 14 deletions
diff --git a/core/hdd/inc/wlan_hdd_tdls.h b/core/hdd/inc/wlan_hdd_tdls.h index 7fed1ef50092..837d7a41ace7 100644 --- a/core/hdd/inc/wlan_hdd_tdls.h +++ b/core/hdd/inc/wlan_hdd_tdls.h @@ -611,7 +611,7 @@ void wlan_hdd_tdls_timer_restart(hdd_adapter_t *pAdapter, uint32_t expirationTime); void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter, hddTdlsPeer_t *curr_peer, - uint16_t reason); + uint16_t reason, bool need_lock); void wlan_hdd_tdls_implicit_send_discovery_request(tdlsCtx_t *hdd_tdls_ctx); diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index bfad0e6539f9..8eebbc3f42b5 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -3770,7 +3770,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter, wlan_hdd_tdls_find_peer(pAdapter, pRoamInfo->peerMac.bytes, true); wlan_hdd_tdls_indicate_teardown(pAdapter, curr_peer, - pRoamInfo->reasonCode); + pRoamInfo->reasonCode, true); hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_BSS_DISCONNECT, curr_peer->peerMac); status = QDF_STATUS_SUCCESS; @@ -3945,7 +3945,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter, wlan_hdd_tdls_indicate_teardown (pHddTdlsCtx->pAdapter, curr_peer, - reason); + reason, true); hdd_send_wlan_tdls_teardown_event( eTDLS_TEARDOWN_BSS_DISCONNECT, curr_peer->peerMac); @@ -3992,7 +3992,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter, wlan_hdd_tdls_indicate_teardown (pHddTdlsCtx->pAdapter, curr_peer, - reason); + reason, true); hdd_send_wlan_tdls_teardown_event( eTDLS_TEARDOWN_BSS_DISCONNECT, curr_peer->peerMac); diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c index 8084474e275c..bfc0e4ab0d7a 100644 --- a/core/hdd/src/wlan_hdd_tdls.c +++ b/core/hdd/src/wlan_hdd_tdls.c @@ -270,7 +270,8 @@ void wlan_hdd_tdls_disable_offchan_and_teardown_links(hdd_context_t *hddctx) wlan_hdd_tdls_indicate_teardown( curr_peer->pHddTdlsCtx->pAdapter, curr_peer, - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_CONCURRENCY, curr_peer->peerMac); } @@ -2991,7 +2992,8 @@ int wlan_hdd_tdls_scan_callback(hdd_adapter_t *pAdapter, struct wiphy *wiphy, wlan_hdd_tdls_indicate_teardown (connectedPeerList[i]->pHddTdlsCtx-> pAdapter, connectedPeerList[i], - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); hdd_send_wlan_tdls_teardown_event( eTDLS_TEARDOWN_SCAN, connectedPeerList[i]->peerMac); @@ -3095,11 +3097,13 @@ void wlan_hdd_tdls_timer_restart(hdd_adapter_t *pAdapter, * @pAdapter: HDD adapter * @curr_peer: peer tdls teardown happened * @reason: teardown reason + * @need_lock: mutex lock for wlan_hdd_tdls_set_peer_link_status() * * Return: Void */ void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter, - hddTdlsPeer_t *curr_peer, uint16_t reason) + hddTdlsPeer_t *curr_peer, uint16_t reason, + bool need_lock) { if ((NULL == pAdapter || WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic) || (NULL == curr_peer)) { @@ -3115,7 +3119,7 @@ void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter, wlan_hdd_tdls_set_peer_link_status(curr_peer, eTDLS_LINK_TEARING, eTDLS_LINK_UNSPECIFIED, - true); + need_lock); hdd_info("Teardown reason %d", reason); cfg80211_tdls_oper_request(pAdapter->dev, curr_peer->peerMac, @@ -4613,7 +4617,8 @@ int wlan_hdd_tdls_extctrl_deconfig_peer(hdd_adapter_t *pAdapter, return -EINVAL; } else { wlan_hdd_tdls_indicate_teardown(pAdapter, pTdlsPeer, - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); hdd_send_wlan_tdls_teardown_event( eTDLS_TEARDOWN_EXT_CTRL, pTdlsPeer->peerMac); @@ -5719,8 +5724,9 @@ static void wlan_hdd_tdls_idle_handler(void *user_data) hdd_info("trigger tdls link to "MAC_ADDRESS_STR " down", MAC_ADDR_ARRAY(curr_peer->peerMac)); wlan_hdd_tdls_indicate_teardown(curr_peer->pHddTdlsCtx->pAdapter, - curr_peer, - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + curr_peer, + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); } error_idle_return: return; @@ -5781,8 +5787,9 @@ static void tdls_ct_process_connected_link(hddTdlsPeer_t *curr_peer, /* unlock the mutex here, it may used in caller function */ mutex_unlock(&hdd_ctx->tdls_lock); wlan_hdd_tdls_indicate_teardown(hdd_tdls_ctx->pAdapter, - curr_peer, - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + curr_peer, + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); mutex_lock(&hdd_ctx->tdls_lock); return; } @@ -6092,7 +6099,8 @@ static int wlan_hdd_tdls_teardown_links(hdd_context_t *hddctx, wlan_hdd_tdls_indicate_teardown( curr_peer->pHddTdlsCtx->pAdapter, curr_peer, - eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); + eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON, + true); mutex_lock(&hddctx->tdls_lock); hddctx->tdls_teardown_peers_cnt++; mutex_unlock(&hddctx->tdls_lock); |
