[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |