diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2013-05-21 08:05:27 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-05-21 19:34:26 -0400 |
commit | fb40bc3e94933007d3e42e96daf1ec8044821cb8 (patch) | |
tree | 417d3c2cbd639aa3ccc3f77cd019d962f7be08df | |
parent | c9b6869dbb3c6edb24e3cc76d3655067cfa7b802 (diff) |
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>
-rw-r--r-- | arch/mips/kernel/idle.c | 2 | ||||
-rw-r--r-- | drivers/cpufreq/loongson2_cpufreq.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/arch/mips/kernel/idle.c b/arch/mips/kernel/idle.c index 36e79f528e89..78cc7d6fc845 100644 --- a/arch/mips/kernel/idle.c +++ b/arch/mips/kernel/idle.c | |||
@@ -34,6 +34,7 @@ static void r3081_wait(void) | |||
34 | { | 34 | { |
35 | unsigned long cfg = read_c0_conf(); | 35 | unsigned long cfg = read_c0_conf(); |
36 | write_c0_conf(cfg | R30XX_CONF_HALT); | 36 | write_c0_conf(cfg | R30XX_CONF_HALT); |
37 | local_irq_enable(); | ||
37 | } | 38 | } |
38 | 39 | ||
39 | static void r39xx_wait(void) | 40 | static void r39xx_wait(void) |
@@ -109,6 +110,7 @@ static void au1k_wait(void) | |||
109 | " nop \n" | 110 | " nop \n" |
110 | " .set mips0 \n" | 111 | " .set mips0 \n" |
111 | : : "r" (au1k_wait)); | 112 | : : "r" (au1k_wait)); |
113 | local_irq_enable(); | ||
112 | } | 114 | } |
113 | 115 | ||
114 | static int __initdata nowait; | 116 | static int __initdata nowait; |
diff --git a/drivers/cpufreq/loongson2_cpufreq.c b/drivers/cpufreq/loongson2_cpufreq.c index 84889573b566..868976d443a6 100644 --- a/drivers/cpufreq/loongson2_cpufreq.c +++ b/drivers/cpufreq/loongson2_cpufreq.c | |||
@@ -200,6 +200,7 @@ static void loongson2_cpu_wait(void) | |||
200 | LOONGSON_CHIPCFG0 &= ~0x7; /* Put CPU into wait mode */ | 200 | LOONGSON_CHIPCFG0 &= ~0x7; /* Put CPU into wait mode */ |
201 | LOONGSON_CHIPCFG0 = cpu_freq; /* Restore CPU state */ | 201 | LOONGSON_CHIPCFG0 = cpu_freq; /* Restore CPU state */ |
202 | spin_unlock_irqrestore(&loongson2_wait_lock, flags); | 202 | spin_unlock_irqrestore(&loongson2_wait_lock, flags); |
203 | local_irq_enable(); | ||
203 | } | 204 | } |
204 | 205 | ||
205 | static int __init cpufreq_init(void) | 206 | static int __init cpufreq_init(void) |