diff options
author | Xin Xie <xxie@nvidia.com> | 2011-06-20 13:07:59 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2011-06-24 06:04:43 -0700 |
commit | 9ad3bc264b618c3b0c163a3536a0c3066c9c83ed (patch) | |
tree | f1a3c8ced1347c9ac8e13a265495102d5c120baf | |
parent | a1843ada65c4a2dc2fb5595f82d7f4a0fa01737a (diff) |
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: Ib13e31adc7a8591c668dd729995e50e0db885641
Reviewed-on: http://git-master/r/37505
Reviewed-on: http://git-master/r/38191
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/suspend.c | 2 |
1 files changed, 1 insertions, 1 deletions
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); |