diff options
author | Daniel Walker <dwalker@codeaurora.org> | 2010-07-27 14:04:30 -0700 |
---|---|---|
committer | Daniel Walker <dwalker@codeaurora.org> | 2010-10-12 16:10:23 -0700 |
commit | 5ad43ff98ac926e37ecbdef04ba7d4d104604028 (patch) | |
tree | 280e755d57c555fc9a672d2b26320f905a0f28b4 /drivers | |
parent | 461cbe77d0a4f887c33a3a95ea68a7daf23b4302 (diff) | |
download | blackbird-op-linux-5ad43ff98ac926e37ecbdef04ba7d4d104604028.tar.gz blackbird-op-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')
-rw-r--r-- | drivers/video/msm/mdp.c | 2 |
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); } |