xen: use default_idle
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Tue, 23 Nov 2010 01:17:50 +0000 (17:17 -0800)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Tue, 23 Nov 2010 01:19:34 +0000 (17:19 -0800)
We just need the idle loop to drop into safe_halt, which default_idle()
is perfectly capable of doing.  There's no need to duplicate it.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
arch/x86/xen/setup.c

index b85dceef56f77686e0efd1d76a2177be53c9e8f2..95fb68a8c20d5260b1f20f4ad8f3b91148d917fe 100644 (file)
@@ -250,20 +250,6 @@ char * __init xen_memory_setup(void)
        return "Xen";
 }
 
-static void xen_idle(void)
-{
-       local_irq_disable();
-
-       if (need_resched())
-               local_irq_enable();
-       else {
-               current_thread_info()->status &= ~TS_POLLING;
-               smp_mb__after_clear_bit();
-               safe_halt();
-               current_thread_info()->status |= TS_POLLING;
-       }
-}
-
 /*
  * Set the bit indicating "nosegneg" library variants should be used.
  * We only need to bother in pure 32-bit mode; compat 32-bit processes
@@ -360,7 +346,11 @@ void __init xen_arch_setup(void)
               MAX_GUEST_CMDLINE > COMMAND_LINE_SIZE ?
               COMMAND_LINE_SIZE : MAX_GUEST_CMDLINE);
 
-       pm_idle = xen_idle;
+       /* Set up idle, making sure it calls safe_halt() pvop */
+#ifdef CONFIG_X86_32
+       boot_cpu_data.hlt_works_ok = 1;
+#endif
+       pm_idle = default_idle;
 
        fiddle_vdso();
 }