qca-wifi: Access wlanstats context using CDP API

Peer wlanstats context was accessed directly
without any protection, if peer was deleted
there was no way to know if PPDU cookie holds
correct wlanstats ctx

Hence to protect the peer wlanstats ctx access
it using CDP API using stats context protection

CRs-Fixed: 2740231
Change-Id: I9b07970c691099f3c9b0175d550508b50db9ac8a
This commit is contained in:
phadiman
2020-08-04 12:47:29 +05:30
committed by Gerrit - the friendly Code Review server
parent c16f1049e2
commit 24f86413a4
2 changed files with 102 additions and 17 deletions

View File

@@ -41,6 +41,11 @@
#define RATE_STATS_LOCK_ACQUIRE(lock) qdf_spin_lock_bh(lock)
#define RATE_STATS_LOCK_RELEASE(lock) qdf_spin_unlock_bh(lock)
#define STATS_CTX_LOCK_CREATE(lock) qdf_spinlock_create(lock)
#define STATS_CTX_LOCK_DESTROY(lock) qdf_spinlock_destroy(lock)
#define STATS_CTX_LOCK_ACQUIRE(lock) qdf_spin_lock_bh(lock)
#define STATS_CTX_LOCK_RELEASE(lock) qdf_spin_unlock_bh(lock)
struct cdp_pdev;
/**
@@ -168,6 +173,8 @@ enum rdk_stats_version {
* @rxs_cache_miss: rate index recevied is not in cache database
* @stats_ver: peer statistics version
* @is_lithium: is lithium or legacy
* @tx_ctx_lock: tx context soc level lock
* @rx_ctx_lock: rx context soc level lock
*/
struct wlan_soc_rate_stats_ctx {
struct cdp_soc_t *soc;
@@ -181,6 +188,8 @@ struct wlan_soc_rate_stats_ctx {
uint32_t rxs_cache_miss;
enum rdk_stats_version stats_ver;
bool is_lithium;
qdf_spinlock_t tx_ctx_lock;
qdf_spinlock_t rx_ctx_lock;
};
/**