summaryrefslogtreecommitdiff
path: root/drivers/mmc/card
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2012-01-04 18:28:45 +0400
committerChris Ball <cjb@laptop.org>2012-01-13 00:17:17 +0400
commit0db13fc2abbb0b1a8d8efee20dfbd7f3c5d54022 (patch)
tree9932b8a8bca14f536e9a23f905919d9ee9c1a10a /drivers/mmc/card
parent3abc1e804253add41990cbe1461e79c1165108e0 (diff)
downloadlinux-0db13fc2abbb0b1a8d8efee20dfbd7f3c5d54022.tar.xz
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 'drivers/mmc/card')
0 files changed, 0 insertions, 0 deletions