qcacld-3.0: Fix tdls idle peers data override

As part of connection tracker handler, If the link is connected
then current tx and rx stats are compared with configured threshold
values. If the current stats fall below the threshold then idle timer
is initialized and idle peer data is stored in tdls soc and given as
userdata to the timer handler. The userdata is overwritten if the another
tdls peer becomes idle and this can lead to wrong tdls peer teardown.

Change-Id: I34638bdebe02e17e1c9e117e58352bdaab867921
CRs-Fixed: 2393320
このコミットが含まれているのは:
Bala Venkatesh
2019-02-04 19:52:27 +05:30
committed by nshrivas
コミット 2a773828bc
6個のファイルの変更34行の追加33行の削除

ファイルの表示

@@ -79,6 +79,8 @@ struct wlan_objmgr_psoc;
#define TDLS_TEARDOWN_PEER_UNSPEC_REASON 26
#define INVALID_TDLS_PEER_ID 0xFF
#define INVALID_TDLS_PEER_INDEX 0xFF
#define TDLS_STA_INDEX_CHECK(sta_id) \
(((sta_id) >= 0) && ((sta_id) < 0xFF))

ファイルの表示

@@ -339,6 +339,8 @@ QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
for (sta_idx = 0; sta_idx < soc_obj->max_num_tdls_sta; sta_idx++) {
soc_obj->tdls_conn_info[sta_idx].sta_id = INVALID_TDLS_PEER_ID;
soc_obj->tdls_conn_info[sta_idx].index =
INVALID_TDLS_PEER_INDEX;
soc_obj->tdls_conn_info[sta_idx].session_id = 255;
qdf_mem_zero(&soc_obj->tdls_conn_info[sta_idx].peer_mac,
QDF_MAC_ADDR_SIZE);