summaryrefslogtreecommitdiff
path: root/include/linux/avtimer_kernel.h
diff options
context:
space:
mode:
authorSujit Reddy Thumma <sthumma@codeaurora.org>2011-12-14 21:17:08 +0530
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:20:55 -0700
commit69ba619f8c95011100fb827027f97e167d5a788d (patch)
treef8f9f2ac14bd8ac6b88946dfcb9c7df727cde1a3 /include/linux/avtimer_kernel.h
parenteb645aebffa8e1c12c56ff1d3e659391c38b6b16 (diff)
mmc: msm_sdcc: Fix deadlock in mmc_suspend_host and mmc_rescan
SDCC runtime suspend can race with mmc_rescan causing deadlock. The call flow would be this: 1) When runtime suspend is triggered: msmsdcc_runtime_suspend() -> mmc_suspend_host() -> mmc_flush_scheduled_work() 2) mmc_flush_schedule_work() waits for mmc_rescan() work to be completed if it is already in runqueue. 3) When mmc_rescan() is scheduled to run: mmc_claim_host() -> msmsdcc_enable() ->pm_runtime_get_sync() 4) pm_runtime_get_sync() waits for runtime_suspend to complete, and hence cause two threads to wait upon each other. Fix this deadlock by aborting runtime suspend when mmc_rescan is scheduled. CRs-Fixed: 326610 Change-Id: I4ca88651f80f5a1bfccb6e0c07e3ea83fadcdc57 Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Diffstat (limited to 'include/linux/avtimer_kernel.h')
0 files changed, 0 insertions, 0 deletions