From 174357de455bec89f17b7ca09152a27f6bedd491 Mon Sep 17 00:00:00 2001 From: Xin Xie Date: Mon, 20 Jun 2011 13:07:59 -0700 Subject: arm: tegra: power: fix LP2 scheduling in atomic disable_irq() will do schedule() if threaded IRQ handler is running. But suspend_cpu_complex() is called from IRQ disabled. disable_irq_nosync() should be used here because it will not sleep. BUG 841808 Change-Id: I5bc241e607ffb5cad34530185e308a9f9bbc6543 Reviewed-on: http://git-master/r/37505 Reviewed-on: http://git-master/r/38188 Reviewed-by: Xin Xie Tested-by: Xin Xie Reviewed-by: Bharat Nihalani --- arch/arm/mach-tegra/suspend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-tegra/suspend.c b/arch/arm/mach-tegra/suspend.c index e8810b5c471b..f05acc6cb65f 100644 --- a/arch/arm/mach-tegra/suspend.c +++ b/arch/arm/mach-tegra/suspend.c @@ -329,7 +329,7 @@ static noinline void suspend_cpu_complex(void) unsigned int reg; int i; - disable_irq(INT_SYS_STATS_MON); + disable_irq_nosync(INT_SYS_STATS_MON); /* switch coresite to clk_m, save off original source */ tegra_sctx.clk_csite_src = readl(clk_rst + CLK_RESET_SOURCE_CSITE); -- cgit v1.2.3