[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86: enable interrupts explicitly in __start_xen()



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1229001928 0
# Node ID df32584505c21c4d9a39991785773e667adffb18
# Parent  1391e1a444c2e986322d72258c0e92eaa2268168
x86: enable interrupts explicitly in __start_xen()

Instead of relying on smp_prepare_cpus() (via check_nmi_watchdog()) or
init_xen_time() (via init_platform_timer() -> plt_overflow())
implicitly enabling interrupts, enable them explicitly once safe to do
so (it may actually be possible to move this even further up, but I
don't think that would buy us much).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Also move spin_debug_enable() a bit higer. Moving it above
smp_prepare_cpus() didn't work for some reason though!

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/arch/x86/setup.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff -r 1391e1a444c2 -r df32584505c2 xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      Thu Dec 11 13:10:19 2008 +0000
+++ b/xen/arch/x86/setup.c      Thu Dec 11 13:25:28 2008 +0000
@@ -941,6 +941,9 @@ void __init __start_xen(unsigned long mb
         set_in_cr4(X86_CR4_OSFXSR);
     if ( cpu_has_xmm )
         set_in_cr4(X86_CR4_OSXMMEXCPT);
+
+    local_irq_enable();
+
 #ifdef CONFIG_X86_64
     vesa_mtrr_init();
 #endif
@@ -949,6 +952,8 @@ void __init __start_xen(unsigned long mb
         max_cpus = 0;
 
     smp_prepare_cpus(max_cpus);
+
+    spin_debug_enable();
 
     /*
      * Initialise higher-level timer functions. We do this fairly late
@@ -961,9 +966,6 @@ void __init __start_xen(unsigned long mb
     initialize_keytable();
 
     serial_init_postirq();
-
-    BUG_ON(!local_irq_is_enabled());
-    spin_debug_enable();
 
     for_each_present_cpu ( i )
     {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.