diff options
| author | Yibo Tan <lhfff@tju.edu.cn> | 2026-09-15 22:44:57 +0800 |
|---|---|---|
| committer | Ulf Hansson <ulfh@kernel.org> | 2026-09-28 17:17:04 +0200 |
| commit | b38af5386a74416e898955443f2e26547b358cb2 (patch) | |
| tree | 25dd57ea0e52b592505620cdedc36d3b0468c31c /tools/lib/python | |
| parent | 4396d70bb7fec531bcf934fed016b2f3300c670b (diff) | |
| download | linux-next-b38af5386a74416e898955443f2e26547b358cb2.tar.gz linux-next-b38af5386a74416e898955443f2e26547b358cb2.zip | |
mmc: mtk-sd: Cancel request timeout work on remove
The driver queues req_timeout while a request is active.
msdc_request_done() uses cancel_delayed_work(), which does not wait for
a timeout callback that has already started.
The timeout callback calls mmc_request_done(), which wakes the request
waiter, and then continues to use host->dev_comp and check the SDIO IRQ.
During unbind, msdc_drv_remove() can return and the managed mmc_host can
be freed before the callback finishes.
KASAN reported use-after-free accesses in msdc_request_done() and
msdc_recheck_sdio_irq() in each of three unbind tests. The same tests
completed without a kernel diagnostic after this change.
Call cancel_delayed_work_sync() after mmc_remove_host() has stopped new
requests and before the driver releases the host resources.
Fixes: 208489032bdd ("mmc: mediatek: Add Mediatek MMC driver")
Cc: stable@vger.kernel.org
Assisted-by: Codex:GPT-5
Signed-off-by: Yibo Tan <lhfff@tju.edu.cn>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
