This matches x86_64 behaviour, which is a superior one IMHO
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
                local_irq_enable();
                current_thread_info()->status |= TS_POLLING;
        } else {
+               local_irq_enable();
                /* loop is done by the caller */
                cpu_relax();
        }
  */
 static void poll_idle(void)
 {
+       local_irq_enable();
        cpu_relax();
 }
 
                __monitor((void *)¤t_thread_info()->flags, 0, 0);
                smp_mb();
                if (!need_resched())
-                       __mwait(ax, cx);
-       }
+                       __sti_mwait(ax, cx);
+               else
+                       local_irq_enable();
+       } else
+               local_irq_enable();
 }
 
 /* Default MONITOR/MWAIT with no hints, used for default C1 state */