summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorFan Wu <fanwu01@zju.edu.cn>2026-08-07 03:26:54 +0000
committerUlf Hansson <ulfh@kernel.org>2026-09-04 10:43:32 +0200
commitd3a421c82412344022982d5b91ba23194a0a6f29 (patch)
tree2bed5e8c361ccf49f24b088aa57192b32ef5f14c /scripts/Makefile.thinlto
parent2b19cf3e50cddaff07b657dae1a8f30f06032852 (diff)
downloadlinux-next-d3a421c82412344022982d5b91ba23194a0a6f29.tar.gz
linux-next-d3a421c82412344022982d5b91ba23194a0a6f29.zip
mmc: mxcmmc: cancel data work and watchdog on remove
mxcmci_remove() frees the host through the devm tail, but neither it nor mmc_remove_host() drains the driver's own asynchronous state. host->watchdog, a 10 s timer armed on the DMA path in mxcmci_setup_data(), is deleted only by the DMA- and IRQ-complete paths, which the remove path does not explicitly drain; it can therefore fire after the host is freed and dereference it in mxcmci_watchdog(). host->datawork, armed from the IRQ handler on the PIO path, is not cancelled by the remove path either. Free the devm-registered IRQ, then cancel datawork and delete the watchdog in mxcmci_remove(), before dma_release_channel(). Freeing the IRQ first keeps a trailing handler from re-arming datawork between the cancel and the host free. Both callbacks are non-self-rearming. This issue was found by an in-house static analysis tool. Fixes: f6ad0a481342 ("mmc: mxcmmc: fix bug that may block a data transfer forever") Cc: stable@vger.kernel.org Assisted-by: Codex:gpt-5.6 Signed-off-by: Fan Wu <fanwu01@zju.edu.cn> Signed-off-by: Ulf Hansson <ulfh@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions