summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/sdhci_am654.c
diff options
context:
space:
mode:
authorAdrian Hunter2019-05-27 13:45:55 +0200
committerUlf Hansson2019-05-28 22:02:05 +0200
commit89f3c365f3e113d087f105c3acbbb5a71eee84e3 (patch)
tree37d9de24d12dd88c753f29e5a4c30f19035602cb /drivers/mmc/host/sdhci_am654.c
parentmmc: meson-gx: fix irq ack (diff)
downloadkernel-qcow2-linux-89f3c365f3e113d087f105c3acbbb5a71eee84e3.tar.gz
kernel-qcow2-linux-89f3c365f3e113d087f105c3acbbb5a71eee84e3.tar.xz
kernel-qcow2-linux-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 <adrian.hunter@intel.com> Fixes: c07a48c26519 ("mmc: sdhci: Remove finish_tasklet") Reported-by: Brian Masney <masneyb@onstation.org> Tested-by: Brian Masney <masneyb@onstation.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/sdhci_am654.c')
0 files changed, 0 insertions, 0 deletions