android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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