From 6b2e9c4ce0645fee95ba0aa24d7875706d9cfd04 Mon Sep 17 00:00:00 2001 From: Sujith Reddy Thumma Date: Thu, 17 Feb 2011 21:37:48 +0530 Subject: mmc: core: Fix race between runtime PM suspend and block requests There is a possible race with mmc_claim_host() in mmc_sd_suspend()/ mmc_suspend() and mmc_claim_host() in mmc_blk_issue_rq() when runtime pm is enabled. Fix this by blocking processing of requests until the previous runtime suspend is processed and then resume as part of msmsdcc_enable(). Previous fix has card detection failure as a side effect during resume. Change-Id: I9cb31269638d9db4e630eb22b973a5335af1bda4 Signed-off-by: Sujith Reddy Thumma [sboyd: Dropped msm driver change] Signed-off-by: Stephen Boyd [subhashj@codeaurora.org: fixed trivial merge conflict] Signed-off-by: Subhash Jadavani --- include/linux/mmc/host.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux') diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index e173a6e3462e..01ae900ef4bf 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -357,6 +357,7 @@ struct mmc_host { wait_queue_head_t wq; struct task_struct *claimer; /* task that has host claimed */ + struct task_struct *suspend_task; int claim_cnt; /* "claim" nesting count */ struct delayed_work detect; -- cgit v1.2.3