diff options
| author | Adrian Hunter <[email protected]> | 2019-05-27 11:45:55 +0000 |
|---|---|---|
| committer | Ulf Hansson <[email protected]> | 2019-05-28 20:02:05 +0000 |
| commit | 89f3c365f3e113d087f105c3acbbb5a71eee84e3 (patch) | |
| tree | 37d9de24d12dd88c753f29e5a4c30f19035602cb /fs/proc/array.c | |
| parent | mmc: meson-gx: fix irq ack (diff) | |
| download | kernel-89f3c365f3e113d087f105c3acbbb5a71eee84e3.tar.gz kernel-89f3c365f3e113d087f105c3acbbb5a71eee84e3.zip | |
mmc: sdhci: Fix SDIO IRQ thread deadlock
Since commit c07a48c26519 ("mmc: sdhci: Remove finish_tasklet"), the IRQ
thread might be used to complete requests, but the IRQ thread is also used
to process SDIO card interrupts. This can cause a deadlock when the SDIO
processing tries to access the card since that would also require the IRQ
thread. Change SDHCI to use sdio_signal_irq() to schedule a work item
instead. That also requires implementing the ->ack_sdio_irq() mmc host op.
Signed-off-by: Adrian Hunter <[email protected]>
Fixes: c07a48c26519 ("mmc: sdhci: Remove finish_tasklet")
Reported-by: Brian Masney <[email protected]>
Tested-by: Brian Masney <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
Diffstat (limited to 'fs/proc/array.c')
0 files changed, 0 insertions, 0 deletions
