android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martin Hundebøll ab530c9bec mmc: meson-gx: remove redundant mmc_request_done() call from irq context
commit 3c40eb8145325b0f5b93b8a169146078cb2c49d6 upstream.

The call to mmc_request_done() can schedule, so it must not be called
from irq context. Wake the irq thread if it needs to be called, and let
its existing logic do its work.

Fixes the following kernel bug, which appears when running an RT patched
kernel on the AmLogic Meson AXG A113X SoC:
[   11.111407] BUG: scheduling while atomic: kworker/0:1H/75/0x00010001
[   11.111438] Modules linked in:
[   11.111451] CPU: 0 PID: 75 Comm: kworker/0:1H Not tainted 6.4.0-rc3-rt2-rtx-00081-gfd07f41ed6b4-dirty #1
[   11.111461] Hardware name: RTX AXG A113X Linux Platform Board (DT)
[   11.111469] Workqueue: kblockd blk_mq_run_work_fn
[   11.111492] Call trace:
[   11.111497]  dump_backtrace+0xac/0xe8
[   11.111510]  show_stack+0x18/0x28
[   11.111518]  dump_stack_lvl+0x48/0x60
[   11.111530]  dump_stack+0x18/0x24
[   11.111537]  __schedule_bug+0x4c/0x68
[   11.111548]  __schedule+0x80/0x574
[   11.111558]  schedule_loop+0x2c/0x50
[   11.111567]  schedule_rtlock+0x14/0x20
[   11.111576]  rtlock_slowlock_locked+0x468/0x730
[   11.111587]  rt_spin_lock+0x40/0x64
[   11.111596]  __wake_up_common_lock+0x5c/0xc4
[   11.111610]  __wake_up+0x18/0x24
[   11.111620]  mmc_blk_mq_req_done+0x68/0x138
[   11.111633]  mmc_request_done+0x104/0x118
[   11.111644]  meson_mmc_request_done+0x38/0x48
[   11.111654]  meson_mmc_irq+0x128/0x1f0
[   11.111663]  __handle_irq_event_percpu+0x70/0x114
[   11.111674]  handle_irq_event_percpu+0x18/0x4c
[   11.111683]  handle_irq_event+0x80/0xb8
[   11.111691]  handle_fasteoi_irq+0xa4/0x120
[   11.111704]  handle_irq_desc+0x20/0x38
[   11.111712]  generic_handle_domain_irq+0x1c/0x28
[   11.111721]  gic_handle_irq+0x8c/0xa8
[   11.111735]  call_on_irq_stack+0x24/0x4c
[   11.111746]  do_interrupt_handler+0x88/0x94
[   11.111757]  el1_interrupt+0x34/0x64
[   11.111769]  el1h_64_irq_handler+0x18/0x24
[   11.111779]  el1h_64_irq+0x64/0x68
[   11.111786]  __add_wait_queue+0x0/0x4c
[   11.111795]  mmc_blk_rw_wait+0x84/0x118
[   11.111804]  mmc_blk_mq_issue_rq+0x5c4/0x654
[   11.111814]  mmc_mq_queue_rq+0x194/0x214
[   11.111822]  blk_mq_dispatch_rq_list+0x3ac/0x528
[   11.111834]  __blk_mq_sched_dispatch_requests+0x340/0x4d0
[   11.111847]  blk_mq_sched_dispatch_requests+0x38/0x70
[   11.111858]  blk_mq_run_work_fn+0x3c/0x70
[   11.111865]  process_one_work+0x17c/0x1f0
[   11.111876]  worker_thread+0x1d4/0x26c
[   11.111885]  kthread+0xe4/0xf4
[   11.111894]  ret_from_fork+0x10/0x20

Fixes: 51c5d8447b ("MMC: meson: initial support for GX platforms")
Cc: stable@vger.kernel.org
Signed-off-by: Martin Hundebøll <martin@geanix.com>
Link: https://lore.kernel.org/r/20230607082713.517157-1-martin@geanix.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-06-28 10:18:36 +02:00
..
accessibility
acpi treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
amba
android binder: fix UAF caused by faulty buffer cleanup 2023-06-05 08:17:33 +02:00
ata treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
atm treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
auxdisplay
base regmap: Account for register length when chunking 2023-06-09 10:29:03 +02:00
bcma
block xen/blkfront: Only check REQ_FUA for writes 2023-06-21 15:44:09 +02:00
bluetooth Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work" 2023-05-17 11:35:45 +02:00
bus bus: imx-weim: fix branch condition evaluates to a garbage value 2023-04-05 11:16:42 +02:00
cdrom
char parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory() 2023-06-21 15:44:09 +02:00
clk treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
clocksource clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails 2023-05-17 11:35:53 +02: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: armada-37xx: stop using 0 as NULL pointer 2023-02-06 07:52:41 +01:00
cpuidle
crypto crypto: safexcel - Cleanup ring IRQ workqueues on load failure 2023-05-17 11:35:58 +02:00
dax
dca
devfreq PM/devfreq: governor: Add a private governor_data for governor 2023-01-18 11:41:52 +01:00
dio
dma dmaengine: pl330: rename _start to prevent build error 2023-06-09 10:28:52 +02:00
dma-buf
edac EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-17 11:35:35 +02:00
eisa
extcon
firewire treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
firmware firmware: arm_sdei: Fix sleep from invalid context BUG 2023-05-30 12:44:02 +01:00
fpga fpga: bridge: fix kernel-doc parameter description 2023-05-17 11:35:46 +02:00
fsi WRITE is "data source", not destination... 2023-02-22 12:50:23 +01:00
gnss
gpio gpio: mockup: Fix mode of debugfs files 2023-05-30 12:44:09 +01:00
gpu drm/nouveau/kms: Fix NULL pointer dereference in nouveau_connector_detect_depth 2023-06-21 15:44:12 +02:00
greybus
hid HID: wacom: avoid integer overflow in wacom_intuos_inout() 2023-06-09 10:28:59 +02:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2023-01-18 11:41:28 +01:00
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:18:36 +02:00
hwmon hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs 2023-04-05 11:16:38 +02:00
hwspinlock
hwtracing coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet() 2023-05-30 12:44:10 +01:00
i2c i2c: sprd: Delete i2c adapter in .remove's error path 2023-06-14 10:59:58 +02:00
i3c
ide treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
idle
iio iio: dac: build ad5758 driver when AD5758 is selected 2023-06-09 10:29:00 +02:00
infiniband IB/isert: Fix incorrect release of isert connection 2023-06-21 15:44:11 +02:00
input Input: psmouse - fix OOB access in Elantech protocol 2023-06-14 10:59:56 +02:00
interconnect interconnect: fix mem leak when freeing nodes 2023-03-22 13:28:08 +01:00
iommu iommu/amd: Don't block updates to GATag if guest mode is on 2023-06-09 10:28:52 +02:00
ipack
irqchip irqchip/meson-gpio: Mark OF related data as maybe unused 2023-06-21 15:44:09 +02:00
isdn mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:32 +01:00
leds leds: TI_LMU_COMMON: select REGMAP instead of depending on it 2023-05-17 11:35:53 +02:00
lightnvm
macintosh macintosh: via-pmu-led: requires ATA to be set 2023-05-17 11:35:50 +02:00
mailbox mailbox: mailbox-test: fix a locking issue in mbox_test_message_write() 2023-06-09 10:28:59 +02:00
mcb mcb-pci: Reallocate memory region to avoid memory overlapping 2023-05-30 12:44:04 +01:00
md treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
media media: dvb-core: Fix use-after-free due to race at dvb_register_device() 2023-06-28 10:18:36 +02:00
memory memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe() 2023-02-06 07:52:34 +01:00
memstick treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +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 memory leak in dln2_probe() 2023-05-30 12:44:04 +01:00
misc eeprom: at24: also select REGMAP 2023-06-14 10:59:58 +02:00
mmc mmc: meson-gx: remove redundant mmc_request_done() call from irq context 2023-06-28 10:18:36 +02:00
mtd mtd: spinand: macronix: Add support for MX35LFxGE4AD 2023-06-14 11:00:00 +02:00
mux
net net: lapbether: only support ethernet devices 2023-06-21 15:44:12 +02:00
nfc nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition 2023-03-22 13:28:05 +01:00
ntb
nubus
nvdimm
nvme nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage" 2023-05-17 11:35:43 +02:00
nvmem nvmem: core: fix cell removal on error 2023-02-22 12:50:28 +01:00
of of: Fix modalias string generation 2023-05-17 11:35:47 +02:00
opp OPP: fix error checking in opp_migrate_dentry() 2023-03-11 16:43:41 +01:00
oprofile
parisc parisc: led: Fix potential null-ptr-deref in start_task() 2023-01-18 11:41:50 +01:00
parport
pci PCI: hv: Fix a race condition bug in hv_pci_query_relations() 2023-06-28 10:18:36 +02:00
pcmcia
perf
phy phy: st: miphy28lp: use _poll_timeout functions for waits 2023-05-30 12:44:04 +01:00
pinctrl pinctrl: meson-axg: add missing GPIOA_18 gpio group 2023-06-14 10:59:58 +02:00
platform platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 2023-06-21 15:44:09 +02:00
pnp
power power: supply: Fix logic checking if system is running from battery 2023-06-21 15:44:09 +02:00
powercap powercap: fix possible name leak in powercap_register_zone() 2023-03-11 16:43:40 +01:00
pps
ps3
ptp ptp_qoriq: fix memory leak in probe() 2023-04-05 11:16:43 +02:00
pwm pwm: mtk-disp: Disable shadow registers before setting backlight values 2023-05-17 11:35:53 +02:00
rapidio
ras
regulator regulator: Fix error checking for debugfs_create_dir 2023-06-21 15:44:09 +02:00
remoteproc remoteproc: st: Call of_node_put() on iteration error 2023-05-17 11:36:01 +02:00
reset
rpmsg rpmsg: glink: Avoid infinite loop on intent for missing channel 2023-03-11 16:43:53 +01:00
rtc rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time 2023-05-17 11:35:51 +02:00
s390 s390/dasd: Use correct lock while counting channel queue length 2023-06-21 15:44:08 +02:00
sbus
scsi scsi: dpt_i2o: Do not process completions with invalid addresses 2023-06-09 10:29:04 +02:00
sfi
sh
siox
slimbus
soc ARM: ux500: do not directly dereference __iomem 2023-01-18 11:41:46 +01:00
soundwire
spi spi: fsl-dspi: avoid SCK glitches with continuous transfers 2023-06-21 15:44:11 +02: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 Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE" 2023-06-14 11:00:00 +02:00
target scsi: target: iscsit: Free cmds before session free 2023-05-30 12:44:03 +01:00
tc
tee
thermal thermal: intel: BXT_PMIC: select REGMAP instead of depending on it 2023-03-11 16:44:13 +01:00
thunderbolt thunderbolt: Use const qualifier for ring_interrupt_index 2023-04-05 11:16:39 +02:00
tty serial: lantiq: add missing interrupt ack 2023-06-21 15:44:10 +02:00
uio
usb usb: dwc3: gadget: Reset num TRBs before giving back the request 2023-06-21 15:44:10 +02:00
vfio
vhost treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
video fbcon: Fix null-ptr-deref in soft_cursor 2023-06-09 10:29:03 +02:00
virt
virtio treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
visorbus
vlynq
vme
w1 w1: fix WARNING after calling w1_process() 2023-02-06 07:52:40 +01:00
watchdog watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:28:55 +02:00
xen xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() 2023-05-30 12:44:10 +01:00
zorro
Kconfig
Makefile