From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wolverine02.qualcomm.com ([199.106.114.251]:53437 "EHLO wolverine02.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752116Ab0G0VE6 (ORCPT ); Tue, 27 Jul 2010 17:04:58 -0400 From: Daniel Walker Subject: [PATCH 5/7] drivers: video: msm: fix hang on disable_irq Date: Tue, 27 Jul 2010 14:04:30 -0700 Message-Id: <1280264672-19364-5-git-send-email-dwalker@codeaurora.org> In-Reply-To: <1280264672-19364-1-git-send-email-dwalker@codeaurora.org> References: <1280264672-19364-1-git-send-email-dwalker@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arm-msm-owner@vger.kernel.org List-ID: To: linux-arm-msm@vger.kernel.org Cc: Daniel Walker 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 --- 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 3c28db0..2b5bf79 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); } -- 1.7.0.4 -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.