From: Daniel Walker Date: Tue, 27 Jul 2010 21:04:30 +0000 (-0700) Subject: drivers: video: msm: fix hang on disable_irq X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5ad43ff98ac926e37ecbdef04ba7d4d104604028;p=linux-beck.git 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 changes in the Google tree. Signed-off-by: Daniel Walker --- 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); }