diff options
author | Sahitya Tummala <stummala@codeaurora.org> | 2010-12-08 15:03:03 +0530 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2010-12-20 12:28:30 -0800 |
commit | 62612cf9d97068dc75b48a7a3044ee907a3283ec (patch) | |
tree | d72ec00cc807f67c284babf83e6b738d125ed0af /drivers/mmc/host/msm_sdcc.h | |
parent | 50bc0ef42c76879f5d68a88c7063603dc0c9789b (diff) | |
download | talos-obmc-linux-62612cf9d97068dc75b48a7a3044ee907a3283ec.tar.gz talos-obmc-linux-62612cf9d97068dc75b48a7a3044ee907a3283ec.zip |
mmc: msm_sdcc: Fix possible circular locking dependency warning
In the context of request processing thread, data mover lock is
acquired after the host lock. In another context, in the completion
handler of data mover the locks are acquired in the reverse order,
resulting in possible circular lock dependency warning. Hence,
schedule a tasklet to process the dma completion so as to avoid
nested locks.
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Diffstat (limited to 'drivers/mmc/host/msm_sdcc.h')
-rw-r--r-- | drivers/mmc/host/msm_sdcc.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/host/msm_sdcc.h b/drivers/mmc/host/msm_sdcc.h index ff2b0f74f6f4..996990dfc7cc 100644 --- a/drivers/mmc/host/msm_sdcc.h +++ b/drivers/mmc/host/msm_sdcc.h @@ -172,6 +172,8 @@ struct msmsdcc_dma_data { struct msmsdcc_host *host; int busy; /* Set if DM is busy */ int active; + unsigned int result; + struct msm_dmov_errdata err; }; struct msmsdcc_pio_data { @@ -235,6 +237,7 @@ struct msmsdcc_host { int cmdpoll; struct msmsdcc_stats stats; + struct tasklet_struct dma_tlet; /* Command parameters */ unsigned int cmd_timeout; unsigned int cmd_pio_irqmask; |