summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorDaniel Walker <dwalker@codeaurora.org>2010-07-27 14:04:30 -0700
committerDaniel Walker <dwalker@codeaurora.org>2010-10-12 16:10:23 -0700
commit5ad43ff98ac926e37ecbdef04ba7d4d104604028 (patch)
tree280e755d57c555fc9a672d2b26320f905a0f28b4 /drivers/video
parent461cbe77d0a4f887c33a3a95ea68a7daf23b4302 (diff)
downloadlinux-5ad43ff98ac926e37ecbdef04ba7d4d104604028.tar.gz
linux-5ad43ff98ac926e37ecbdef04ba7d4d104604028.tar.bz2
linux-5ad43ff98ac926e37ecbdef04ba7d4d104604028.zip
drivers: video: msm: fix hang on disable_irq
There's a resource race around disable_irq. Using the nosync version allows the function to continue and prevents the hang. Adapted from Arve Hjønnevåg <arve@android.com> changes in the Google tree. Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/msm/mdp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c
index 3c28db03ad39..2b5bf79ffe75 100644
--- a/drivers/video/msm/mdp.c
+++ b/drivers/video/msm/mdp.c
@@ -90,7 +90,7 @@ static int locked_disable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
mdp_irq_mask &= ~(mask);
/* if no one is waiting on the interrupt, disable it */
if (!mdp_irq_mask) {
- disable_irq(mdp->irq);
+ disable_irq_nosync(mdp->irq);
if (clk)
clk_disable(clk);
}