diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index ce347b590123..615230fc6090 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -3806,17 +3806,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); @@ -3824,11 +3825,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);