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
|
|
|