]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
drivers: video: msm: fix hang on disable_irq
authorDaniel Walker <dwalker@codeaurora.org>
Tue, 27 Jul 2010 21:04:30 +0000 (14:04 -0700)
committerDaniel Walker <dwalker@codeaurora.org>
Tue, 12 Oct 2010 23:10:23 +0000 (16:10 -0700)
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>
drivers/video/msm/mdp.c

index 3c28db03ad392a66cd773d3d63e673c23a06d1bc..2b5bf79ffe7514dff6490b6f2345342eb6750d90 100644 (file)
@@ -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);
        }