aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91sam9g45_devices.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2012-01-04 15:28:45 +0100
committerChris Ball <cjb@laptop.org>2012-01-12 15:17:17 -0500
commit0db13fc2abbb0b1a8d8efee20dfbd7f3c5d54022 (patch)
tree9932b8a8bca14f536e9a23f905919d9ee9c1a10a /arch/arm/mach-at91/at91sam9g45_devices.c
parentmmc: sdhci: restore the enabled dma when do reset all (diff)
downloadlinux-dev-0db13fc2abbb0b1a8d8efee20dfbd7f3c5d54022.tar.xz
linux-dev-0db13fc2abbb0b1a8d8efee20dfbd7f3c5d54022.zip
mmc: fix a deadlock between system suspend and MMC block IO
Performing MMC block IO with simultaneous STR can lead to a deadlock: the mmc_pm_notify() function claims the host and then calls bus .remove() method, which lands in mmc_blk_remove(), which calls mmc_blk_remove_req() then it goes to -> mmc_cleanup_queue() -> kthread_stop(), which waits for the mmc-block thread to stop. If the mmc-block thread at that time is processing block requests, it will also try to claim the host in mmc_blk_issue_rq() and block there. This patch fixes the problem by calling .remove() before claiming the host. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Arindam Nath <arindam.nath@amd.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'arch/arm/mach-at91/at91sam9g45_devices.c')
0 files changed, 0 insertions, 0 deletions