TDLS: data path stall after TDLS teardown
TDLS: data path stall after TDLS teardown
CRs-Fixed: 440904, 443337
Change-Id: Icf49c3a6ddecfe06134ef00f748ac22044717930
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index 00779e3..b58031d 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -1847,6 +1847,21 @@
return( vosStatus );
}
+static VOS_STATUS hdd_roamDeregisterTDLSSTA( hdd_adapter_t *pAdapter, tANI_U8 staId )
+{
+ VOS_STATUS vosStatus;
+ vosStatus = WLANTL_ClearSTAClient( (WLAN_HDD_GET_CTX(pAdapter))->pvosContext, staId );
+ if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) )
+ {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_WARN,
+ "%s: WLANTL_ClearSTAClient() failed to for staID %d. "
+ "Status= %d [0x%08lX]",
+ __func__, staId, vosStatus, vosStatus );
+ }
+ return( vosStatus );
+}
+
+
/*
* HDD interface between SME and TL to ensure TDLS client registration with
* TL in case of new TDLS client is added and deregistration at the time
@@ -1946,7 +1961,7 @@
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
("HDD: del STA IDX = %x\n"), pRoamInfo->staId) ;
wlan_hdd_removeTdlsPeer(pRoamInfo);
- hdd_roamDeregisterSTA( pAdapter, pRoamInfo->staId );
+ hdd_roamDeregisterTDLSSTA ( pAdapter, pRoamInfo->staId );
(WLAN_HDD_GET_CTX(pAdapter))->sta_to_adapter[pRoamInfo->staId] = NULL;
}
break ;