From 807d16781031a9e64c3c5f1d87b48e0d6c7f86ce Mon Sep 17 00:00:00 2001 From: Bapiraju Alla Date: Wed, 18 Nov 2020 13:24:54 +0530 Subject: [PATCH] qcacld-3.0: Process FW diag events in a separate worker thread Currently, FW diag logs, management frames and stats responses are processed in worker context. Because of this, there is a possible out of memory scenario when there are huge number of diag events waiting in work queue. To address this, process diag events in a separate worker thread and set the limit for the number of diag events that can be queued in work queue. Change-Id: Ib9f7b8042479e8b2f4d67c9a4250932b018f29a4 CRs-Fixed: 2821534 --- Kbuild | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Kbuild b/Kbuild index cbe072119e33..7029acfb1e28 100644 --- a/Kbuild +++ b/Kbuild @@ -3554,6 +3554,14 @@ ccflags-y += -DSCAN_CHAN_STATS_EVENT_ENAB=$(CONFIG_SCAN_CHAN_STATS_EVENT_ENAB) CONFIG_MAX_BCN_PROBE_IN_SCAN_QUEUE ?= 150 ccflags-y += -DMAX_BCN_PROBE_IN_SCAN_QUEUE=$(CONFIG_MAX_BCN_PROBE_IN_SCAN_QUEUE) +#CONFIG_RX_DIAG_WQ_MAX_SIZE maximum number FW diag events that can be queued in +#FW diag events work queue. Host driver will discard the all diag events after +#this limit is reached. +# +# Value 0 represents no limit and any non zero value represents the maximum +# size of the work queue. +CONFIG_RX_DIAG_WQ_MAX_SIZE ?= 0 +ccflags-y += -DRX_DIAG_WQ_MAX_SIZE=$(CONFIG_RX_DIAG_WQ_MAX_SIZE) CONFIG_MGMT_DESC_POOL_MAX ?= 64 ccflags-y += -DMGMT_DESC_POOL_MAX=$(CONFIG_MGMT_DESC_POOL_MAX)