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
committed by nshrivas
부모 407870de43
커밋 07ed407a56
2개의 변경된 파일47개의 추가작업 그리고 20개의 파일을 삭제

파일 보기

@@ -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