android_kernel_asus_sm8350/drivers
Rakesh Pillai d9f1b99f4c UPSTREAM: 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>

Bug: 146449535
Change-Id: I3d85ff89b889eac117c6f14c77b8aae1d5b3d236
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
(cherry picked from android11-5.4-lts commit 696b992edc)
2024-01-30 21:33:36 +05:30
..
accessibility
acpi This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
amba This is the 5.4.257 stable release 2023-09-30 11:33:27 +00:00
android This is the 5.4.254 stable release 2023-08-23 15:06:40 +00: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 This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
bcma
block This is the 5.4.260 stable release 2023-11-08 11:17:10 +00:00
bluetooth This is the 5.4.262 stable release 2023-11-29 10:18:14 +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 Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
clk FROMGIT: clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd 2024-01-30 21:33:05 +05:30
clocksource This is the 5.4.262 stable release 2023-11-29 10:18:14 +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 This is the 5.4.263 stable release 2023-12-11 12:08:17 +00:00
cpuidle
crypto Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
dax
dca
devfreq This is the 5.4.257 stable release 2023-09-30 11:33:27 +00:00
dio
dma This is the 5.4.262 stable release 2023-11-29 10:18:14 +00:00
dma-buf This is the 5.4.255 stable release 2023-08-30 16:47:09 +00:00
edac EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-17 11:35:35 +02:00
eisa
extcon This is the 5.4.251 stable release 2023-08-03 10:56:28 +00:00
firewire firewire: core: fix possible memory leak in create_units() 2023-12-08 08:44:26 +01:00
firmware Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00: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 This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
greybus
hid This is the 5.4.265 stable release 2023-12-21 12:17:30 +00:00
hsi
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:18:36 +02:00
hwmon This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
hwspinlock
hwtracing coresight: tmc: Explicit type conversions to prevent integer overflow 2023-09-23 10:59:50 +02:00
i2c This is the 5.4.262 stable release 2023-11-29 10:18:14 +00: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: exynos-adc: request second interupt only when touchscreen mode is used 2023-11-08 11:23:36 +01:00
infiniband This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
input Merge tag 'android11-5.4.265_r00' into branch 'android11-5.4' 2024-01-09 13:26:54 +00:00
interconnect Revert "interconnect: Add helpers for enabling/disabling a path" 2023-08-31 13:52:19 +00:00
iommu This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
ipack
irqchip Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:19:23 +02:00
leds Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
lightnvm
macintosh macintosh: via-pmu-led: requires ATA to be set 2023-05-17 11:35:50 +02:00
mailbox This is the 5.4.251 stable release 2023-08-03 10:56:28 +00:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:50:19 +00:00
md This is the 5.4.265 stable release 2023-12-21 12:17:30 +00:00
media This is the 5.4.262 stable release 2023-11-29 10:18:14 +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 Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
misc Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
mmc This is the 5.4.265 stable release 2023-12-21 12:17:30 +00:00
mtd This is the 5.4.263 stable release 2023-12-11 12:08:17 +00:00
mux
net UPSTREAM: ath10k: Add interrupt summary based CE processing 2024-01-30 21:33:36 +05:30
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 UPSTREAM: nvmet-tcp: Fix a possible UAF in queue intialization setup 2023-12-13 12:34:51 +00:00
nvmem This is the 5.4.260 stable release 2023-11-08 11:17:10 +00:00
of This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
opp This is the 5.4.257 stable release 2023-09-30 11:33:27 +00: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 This is the 5.4.265 stable release 2023-12-21 12:17:30 +00: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 Merge 5.4.259 into android11-5.4-lts 2023-10-26 09:18:00 +00:00
pinctrl This is the 5.4.263 stable release 2023-12-11 12:08:17 +00:00
platform This is the 5.4.265 stable release 2023-12-21 12:17:30 +00:00
pnp
power Merge 5.4.248 into android11-5.4-lts 2023-06-22 16:16:24 +00: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 Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
rapidio
ras
regulator Merge 5.4.259 into android11-5.4-lts 2023-10-26 09:18:00 +00:00
remoteproc This is the 5.4.243 stable release 2023-06-15 10:57:33 +00:00
reset Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
rpmsg Merge "Merge tag 'android11-5.4.259_r00' into android11-5.4" into android11-5.4 2023-11-29 12:41:51 +00:00
rtc Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
s390 s390/dasd: protect device queue against concurrent access 2023-12-08 08:44:25 +01:00
sbus
scsi This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
sfi
sh
siox
slimbus
soc Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:41:24 +01:00
spi Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00: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 This is the 5.4.257 stable release 2023-09-30 11:33:27 +00:00
target scsi: target: core: Fix deadlock due to recursive locking 2023-10-10 21:46:43 +02:00
tc
tee
thermal Merge 5.4.261 into android11-5.4-lts 2023-11-27 11:27:01 +00:00
thunderbolt thunderbolt: Use const qualifier for ring_interrupt_index 2023-04-05 11:16:39 +02:00
tty This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
uio
usb This is the 5.4.264 stable release 2023-12-14 13:03:30 +00:00
vfio
vhost Merge 5.4.246 into android11-5.4-lts 2023-06-20 19:13:58 +00:00
video This is the 5.4.263 stable release 2023-12-11 12:08:17 +00:00
virt
virtio This is the 5.4.260 stable release 2023-11-08 11:17:10 +00: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
OWNERS