Rakesh Pillai
696b992edc
ath10k: Add interrupt summary based CE processing
...
[ Upstream commit b92aba35d39d10d8a6bdf2495172fd490c598b4a ]
Currently the NAPI processing loops through all
the copy engines and processes a particular copy
engine is the copy completion is set for that copy
engine. The host driver is not supposed to access
any copy engine register after clearing the interrupt
status register.
This might result in kernel crash like the one below
[ 1159.220143] Call trace:
[ 1159.220170] ath10k_snoc_read32+0x20/0x40 [ath10k_snoc]
[ 1159.220193] ath10k_ce_per_engine_service_any+0x78/0x130 [ath10k_core]
[ 1159.220203] ath10k_snoc_napi_poll+0x38/0x8c [ath10k_snoc]
[ 1159.220270] net_rx_action+0x100/0x3b0
[ 1159.220312] __do_softirq+0x164/0x30c
[ 1159.220345] run_ksoftirqd+0x2c/0x64
[ 1159.220380] smpboot_thread_fn+0x1b0/0x288
[ 1159.220405] kthread+0x11c/0x12c
[ 1159.220423] ret_from_fork+0x10/0x18
To avoid such a scenario, we generate an interrupt
summary by reading the copy completion for all the
copy engine before actually processing any of them.
This will avoid reading the interrupt status register
for any CE after the interrupt status is cleared.
Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1593193967-29897-1-git-send-email-pillair@codeaurora.org
Stable-dep-of: 170c75d43a77 ("ath10k: Don't touch the CE interrupt registers after power up")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-15 18:25:28 +01:00
..
accessibility
acpi
ACPI/IORT: Make iort_msi_map_rid() PCI agnostic
2023-12-13 18:18:10 +01:00
amba
amba: bus: fix refcount leak
2023-09-23 10:59:52 +02:00
android
binder: fix memory leak in binder_init()
2023-08-16 18:19:23 +02:00
ata
ata: pata_isapnp: Add missing error check for devm_ioport_map()
2023-12-08 08:44:23 +01:00
atm
atm: solos-pci: Fix potential deadlock on &tx_queue_lock
2023-12-20 15:41:15 +01:00
auxdisplay
base
devcoredump: Send uevent once devcd is ready
2023-12-13 18:18:18 +01:00
bcma
block
remove the sx8 block driver
2023-11-08 11:23:42 +01:00
bluetooth
Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE
2023-11-28 16:50:20 +00:00
bus
bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
2023-10-10 21:46:39 +02:00
cdrom
char
hwrng: geode - fix accessing registers
2023-11-20 10:30:12 +01:00
clk
clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks
2023-11-28 16:50:19 +00:00
clocksource
clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware
2023-11-28 16:50:13 +00:00
connector
counter
counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
2023-05-17 11:35:31 +02:00
cpufreq
cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily
2023-12-08 08:44:28 +01:00
cpuidle
crypto
crypto: caam/jr - fix Chacha20 + Poly1305 self test failure
2023-11-20 10:30:12 +01:00
dax
dca
devfreq
PM / devfreq: Fix leak in devfreq_dev_release()
2023-09-23 10:59:54 +02:00
dio
dma
dmaengine: stm32-mdma: correct desc prep when channel running
2023-11-28 16:50:19 +00:00
dma-buf
dma-buf/sw_sync: Avoid recursive lock during fence signal
2023-08-30 16:27:28 +02:00
edac
EDAC/skx: Fix overflows on the DRAM row address mapping arrays
2023-05-17 11:35:35 +02:00
eisa
extcon
extcon: Fix kernel doc of property capability fields to avoid warnings
2023-07-27 08:37:20 +02:00
firewire
firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
2024-01-15 18:25:27 +01:00
firmware
firmware: ti_sci: Mark driver as non removable
2023-11-20 10:30:12 +01:00
fpga
fpga: bridge: fix kernel-doc parameter description
2023-05-17 11:35:46 +02:00
fsi
fsi: master-ast-cf: Add MODULE_FIRMWARE macro
2023-09-23 10:59:37 +02:00
gnss
gpio
gpiolib: sysfs: Fix error handling on failed export
2023-12-13 18:18:15 +01:00
gpu
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
2023-12-13 18:18:10 +01:00
greybus
hid
HID: hid-asus: add const to read-only outgoing usb buffer
2023-12-20 15:41:23 +01:00
hsi
hv
Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
2023-06-28 10:18:36 +02:00
hwmon
hwmon: (acpi_power_meter) Fix 4.29 MW bug
2023-12-13 18:18:13 +01:00
hwspinlock
hwtracing
coresight: tmc: Explicit type conversions to prevent integer overflow
2023-09-23 10:59:50 +02:00
i2c
i2c: core: Fix atomic xfer check for non-preempt config
2024-01-15 18:25:27 +01:00
i3c
i3c: master: cdns: Fix reading status register
2023-11-28 16:50:19 +00:00
ide
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
idle
iio
iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
2024-01-08 11:29:46 +01:00
infiniband
RDMA/bnxt_re: Correct module description string
2023-12-13 18:18:13 +01:00
input
Input: ipaq-micro-keys - add error handling for devm_kmemdup
2024-01-08 11:29:46 +01:00
interconnect
interconnect: Treat xlate() returning NULL node as an error
2024-01-08 11:29:45 +01:00
iommu
of/iommu: Make of_map_rid() PCI agnostic
2023-12-13 18:18:11 +01:00
ipack
irqchip
firmware: ti_sci: Replace HTTP links with HTTPS ones
2023-11-20 10:30:12 +01:00
isdn
mISDN: Update parameter type of dsp_cmx_send()
2023-08-16 18:19:23 +02:00
leds
leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
2023-11-20 10:30:13 +01:00
lightnvm
macintosh
macintosh: via-pmu-led: requires ATA to be set
2023-05-17 11:35:50 +02:00
mailbox
mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
2023-07-27 08:37:23 +02:00
mcb
mcb: fix error handling for different scenarios when parsing
2023-11-28 16:50:19 +00:00
md
bcache: avoid NULL checking to c->root in run_cache_set()
2023-12-20 15:41:20 +01:00
media
media: venus: hfi: add checks to handle capabilities from firmware
2023-11-28 16:50:21 +00:00
memory
memory: brcmstb_dpfe: fix testing array offset after use
2023-07-27 08:37:14 +02:00
memstick
memstick r592: make memstick_debug_get_tpc_name() static
2023-07-27 08:37:10 +02:00
message
scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition
2023-05-30 12:44:03 +01:00
mfd
mfd: dln2: Fix double put in dln2_probe
2023-11-20 10:30:13 +01:00
misc
misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()
2023-11-20 10:30:13 +01:00
mmc
mmc: sdhci-sprd: Fix eMMC init failure after hw reset
2024-01-15 18:25:28 +01:00
mtd
mtd: cfi_cmdset_0001: Byte swap OTP info
2023-12-08 08:44:27 +01:00
mux
net
ath10k: Add interrupt summary based CE processing
2024-01-15 18:25:28 +01:00
nfc
nfcsim.c: Fix error checking for debugfs_create_dir
2023-06-28 10:18:41 +02:00
ntb
ntb: Fix calculation ntb_transport_tx_free_entry()
2023-09-23 10:59:55 +02:00
nubus
nvdimm
nd_btt: Make BTT lanes preemptible
2023-11-20 10:30:12 +01:00
nvme
nvmet: nul-terminate the NQNs passed in the connect command
2023-12-08 08:44:24 +01:00
nvmem
nvmem: imx: correct nregs for i.MX6UL
2023-11-08 11:23:37 +01:00
of
of: dynamic: Fix of_reconfig_get_state_change() return value documentation
2023-12-13 18:18:11 +01:00
opp
OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
2023-09-23 10:59:40 +02:00
oprofile
parisc
parisc: iosapic.c: Fix sparse warnings
2023-10-10 21:46:39 +02:00
parport
parport: Add support for Brainboxes IX/UC/PX parallel cards
2023-12-13 18:18:15 +01:00
pci
Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
2023-12-20 15:41:19 +01:00
pcmcia
pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()
2023-11-20 10:30:14 +01:00
perf
perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
2023-09-23 11:00:03 +02:00
phy
phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
2023-10-25 11:53:25 +02:00
pinctrl
pinctrl: at91-pio4: use dedicated lock class for IRQ
2024-01-08 11:29:45 +01:00
platform
platform/x86: intel_telemetry: Fix kernel doc descriptions
2023-12-20 15:41:21 +01:00
pnp
power
power: supply: Fix logic checking if system is running from battery
2023-06-21 15:44:09 +02:00
powercap
powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
2023-07-27 08:37:06 +02:00
pps
ps3
ptp
ptp: annotate data-race around q->head and q->tail
2023-11-28 16:50:16 +00:00
pwm
pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume
2023-11-20 10:30:15 +01:00
rapidio
ras
regulator
regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()"
2023-10-25 11:53:23 +02:00
remoteproc
remoteproc: st: Call of_node_put() on iteration error
2023-05-17 11:36:01 +02:00
reset
reset: Fix crash when freeing non-existent optional resets
2024-01-08 11:29:43 +01:00
rpmsg
rpmsg: Fix possible refcount leak in rpmsg_register_device_override()
2023-11-08 11:23:40 +01:00
rtc
rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call
2023-11-20 10:30:14 +01:00
s390
s390/dasd: protect device queue against concurrent access
2023-12-08 08:44:25 +01:00
sbus
scsi
scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
2024-01-08 11:29:46 +01:00
sfi
sh
siox
slimbus
soc
soc: qcom: llcc: Handle a second device without data corruption
2023-11-20 10:30:12 +01:00
soundwire
soundwire: stream: fix NULL pointer dereference for multi_link
2023-12-20 15:41:24 +01:00
spi
spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
2023-11-20 10:30:16 +01:00
spmi
spmi: Add a check for remove callback when removing a SPMI driver
2023-05-17 11:35:49 +02:00
ssb
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
staging
staging: rtl8712: fix race condition
2023-09-23 10:59:37 +02:00
target
scsi: target: core: Fix deadlock due to recursive locking
2023-10-10 21:46:43 +02:00
tc
tee
thermal
thermal: core: prevent potential string overflow
2023-11-20 10:30:09 +01:00
thunderbolt
tty
serial: 8250_omap: Add earlycon support for the AM654 UART controller
2023-12-13 18:18:16 +01:00
uio
usb
usb: fotg210-hcd: delete an incorrect bounds test
2024-01-08 11:29:47 +01:00
vfio
vhost
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
video
fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
2023-12-08 08:44:27 +01:00
virt
virtio
virtio-mmio: fix memory leak of vm_dev
2023-11-08 11:23:34 +01:00
visorbus
vlynq
vme
w1
w1: fix loop in w1_fini()
2023-07-27 08:37:19 +02:00
watchdog
watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
2023-10-10 21:46:40 +02:00
xen
xen/events: fix delayed eoi list handling
2023-11-28 16:50:16 +00:00
zorro
Kconfig
Makefile