|
@@ -58,9 +58,12 @@ void arch_cpu_idle(void)
|
|
{
|
|
{
|
|
if (tlb_type != hypervisor) {
|
|
if (tlb_type != hypervisor) {
|
|
touch_nmi_watchdog();
|
|
touch_nmi_watchdog();
|
|
|
|
+ local_irq_enable();
|
|
} else {
|
|
} else {
|
|
unsigned long pstate;
|
|
unsigned long pstate;
|
|
|
|
|
|
|
|
+ local_irq_enable();
|
|
|
|
+
|
|
/* The sun4v sleeping code requires that we have PSTATE.IE cleared over
|
|
/* The sun4v sleeping code requires that we have PSTATE.IE cleared over
|
|
* the cpu sleep hypervisor call.
|
|
* the cpu sleep hypervisor call.
|
|
*/
|
|
*/
|
|
@@ -82,7 +85,6 @@ void arch_cpu_idle(void)
|
|
: "=&r" (pstate)
|
|
: "=&r" (pstate)
|
|
: "i" (PSTATE_IE));
|
|
: "i" (PSTATE_IE));
|
|
}
|
|
}
|
|
- local_irq_enable();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#ifdef CONFIG_HOTPLUG_CPU
|