summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 53614b07a4eb..f763cde54975 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -3710,17 +3710,18 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
pHddCtx->tdlsConnInfo[staIdx].staId) {
hdd_warn("HDD: del STA IDX = %x",
pRoamInfo->staId);
-
+ mutex_lock(&pHddCtx->tdls_lock);
curr_peer =
wlan_hdd_tdls_find_peer(pAdapter,
pRoamInfo->
peerMac.bytes,
- true);
+ false);
if (NULL != curr_peer) {
hdd_info("Current status for peer " MAC_ADDRESS_STR " is %d",
MAC_ADDR_ARRAY(pRoamInfo->peerMac.bytes),
curr_peer->link_status);
if (TDLS_IS_CONNECTED(curr_peer)) {
+ mutex_unlock(&pHddCtx->tdls_lock);
hdd_roam_deregister_tdlssta
(pAdapter,
pRoamInfo->staId);
@@ -3728,11 +3729,14 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
(pAdapter);
} else if (eTDLS_LINK_CONNECTING ==
curr_peer->link_status) {
+ mutex_unlock(&pHddCtx->tdls_lock);
hdd_roam_deregister_tdlssta
(pAdapter,
pRoamInfo->staId);
}
- }
+ } else
+ mutex_unlock(&pHddCtx->tdls_lock);
+
wlan_hdd_tdls_reset_peer(pAdapter,
pRoamInfo->
peerMac.bytes);