qcacmn: CFR: Add protection while accessing cfr lookup table

Protect access to cfr lookup table, since error handling
mechanism attempts to cleanup CFR entries in timer context,
this leads to contention between bottom-half and timer.

Change-Id: I32a095fc82545ab117ab43a81ef8a3a5602741fc
CRs-Fixed: 2649714
This commit is contained in:
Padma Raghunathan
2020-03-10 11:07:53 +05:30
committad av nshrivas
förälder 407870de43
incheckning 07ed407a56
2 ändrade filer med 47 tillägg och 20 borttagningar

Visa fil

@@ -452,11 +452,12 @@ struct cfr_rcc_param {
* data length was invalid
* flush_timeout_dbr_cnt: No. of DBR completion flushed out in ageout logic
* clear_txrx_event: No. of PPDU status TLVs over-written in LUT
* unassoc_pool: Pool of un-associated clients used when capture method is
* CFR_CAPTURE_METHOD_PROBE_RESPONSE
* last_success_tstamp: DBR timestamp which indicates that both DBR and TX/RX
* events have been received successfully.
* cfr_dma_aborts: No. of CFR DMA aborts in ucode
* unassoc_pool: Pool of un-associated clients used when capture method is
* CFR_CAPTURE_METHOD_PROBE_RESPONSE
* lut_lock: Lock to protect access to cfr lookup table
*/
/*
* To be extended if we get more capbality info
@@ -495,6 +496,7 @@ struct pdev_cfr {
uint64_t cfr_dma_aborts;
#endif
struct unassoc_pool_entry unassoc_pool[MAX_CFR_ENABLED_CLIENTS];
qdf_spinlock_t lut_lock;
};
#define PEER_CFR_CAPTURE_ENABLE 1