Browse Source

MIPS: Idle: Re-enable irqs at the end of r3081, au1k and loongson2 cpu_wait.

Without this, the

    WARN_ON_ONCE(irqs_disabled());

in the idle loop will be triggered.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle 12 years ago
parent
commit
fb40bc3e94
2 changed files with 3 additions and 0 deletions
  1. 2 0
      arch/mips/kernel/idle.c
  2. 1 0
      drivers/cpufreq/loongson2_cpufreq.c

+ 2 - 0
arch/mips/kernel/idle.c

@@ -34,6 +34,7 @@ static void r3081_wait(void)
 {
 	unsigned long cfg = read_c0_conf();
 	write_c0_conf(cfg | R30XX_CONF_HALT);
+	local_irq_enable();
 }
 
 static void r39xx_wait(void)
@@ -109,6 +110,7 @@ static void au1k_wait(void)
 	"	nop				\n"
 	"	.set	mips0			\n"
 	: : "r" (au1k_wait));
+	local_irq_enable();
 }
 
 static int __initdata nowait;

+ 1 - 0
drivers/cpufreq/loongson2_cpufreq.c

@@ -200,6 +200,7 @@ static void loongson2_cpu_wait(void)
 	LOONGSON_CHIPCFG0 &= ~0x7;	/* Put CPU into wait mode */
 	LOONGSON_CHIPCFG0 = cpu_freq;	/* Restore CPU state */
 	spin_unlock_irqrestore(&loongson2_wait_lock, flags);
+	local_irq_enable();
 }
 
 static int __init cpufreq_init(void)