Browse Source

qcacld-3.0: TL cleanup is not invoked for TDLS CONNECTING state

qcacld-2.0 to qcacld-3.0 propagation

When TDLS peer link state is in connecting state; at the time of
DISABLE link from upper layer driver is not doing TL cleanup
for connecting state.
Fix this issue by cleaning up for connecting state as well.

Change-Id: Ib97128b96ca13569f8d247e3eaa3c86938e426d1
CRs-Fixed: 773076
Agrawal Ashish 9 years ago
parent
commit
dd2075b375
1 changed files with 11 additions and 2 deletions
  1. 11 2
      core/hdd/src/wlan_hdd_assoc.c

+ 11 - 2
core/hdd/src/wlan_hdd_assoc.c

@@ -3172,13 +3172,22 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
 								pRoamInfo->
 								peerMac.bytes,
 								true);
-				if (NULL != curr_peer
-				    && TDLS_IS_CONNECTED(curr_peer)) {
+				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)) {
 					hdd_roam_deregister_tdlssta
 						(pAdapter,
 						pRoamInfo->staId);
 					wlan_hdd_tdls_decrement_peer_count
 						(pAdapter);
+				    } else if (eTDLS_LINK_CONNECTING ==
+					    curr_peer->link_status) {
+					hdd_roam_deregister_tdlssta
+						(pAdapter,
+						pRoamInfo->staId);
+				    }
 				}
 				wlan_hdd_tdls_reset_peer(pAdapter,
 							 pRoamInfo->