diff options
| author | Abhinav Kumar <abhikuma@codeaurora.org> | 2019-01-11 18:47:37 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-01-22 06:47:11 -0800 |
| commit | 02cb8170245ae79854de07f5601bb8d03a11afa4 (patch) | |
| tree | 939f57687976cdfc5ed35c38063d9c1ea54a9c41 | |
| parent | fec16d90344968624a302b65624e34fc095851f0 (diff) | |
qcacld-3.0: Find Session by BSSID while handling TSM Stats rsp
Currently, value of staIndex in dph hash table is not getting
updated after roaming. But diver invokes pe_find_session_by_sta_id
to get PE session to handle eWNI_SME_GET_TSM_STATS_RSP. Due to a
different value of staIndex and staid, session lookup fails for
StaId. This results in failure of IOCTL command "GETTSMSTATS"
after roaming.
Fix is to use bssid instead of sta id to find session in
lim_send_sme_pe_ese_tsm_rsp.
Change-Id: I42745c864ac0292dbcaae05f62a00a141705d431
CRs-Fixed: 2381668
| -rw-r--r-- | core/mac/inc/sir_api.h | 3 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 6 | ||||
| -rw-r--r-- | core/wma/src/wma_features.c | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index e31fbd8ea88c..19683b2d1bcf 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -1195,6 +1195,7 @@ typedef struct sAniGetTsmStatsRsp { * Per STA stats request must * contain valid */ + struct qdf_mac_addr bssid; /* bssid to get the tsm stats for */ tAniTrafStrmMetrics tsmMetrics; void *tsmStatsReq; /* tsm stats request backup */ } tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp; diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index 915db70b4be6..2c89606aaae7 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -1895,8 +1895,8 @@ void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac, tpPESession pPeSessionEntry = NULL; /* Get the Session Id based on Sta Id */ - pPeSessionEntry = - pe_find_session_by_sta_id(pMac, pPeStats->staId, &sessionId); + pPeSessionEntry = pe_find_session_by_bssid(pMac, pPeStats->bssid.bytes, + &sessionId); /* Fill the Session Id */ if (NULL != pPeSessionEntry) { diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index 4cdbbd8596d0..cbbeff8eeb0c 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -6929,6 +6929,7 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler, return QDF_STATUS_E_NOMEM; } pTsmRspParams->staId = pStats->staId; + qdf_copy_macaddr(&pTsmRspParams->bssid, &pStats->bssId); pTsmRspParams->rc = eSIR_FAILURE; pTsmRspParams->tsmStatsReq = pStats; pTsmMetric = &pTsmRspParams->tsmMetrics; |
