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@novell.com>
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@citrix.com>
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
smp_prepare_cpus(max_cpus);
+ spin_debug_enable();
+
/*
* Initialise higher-level timer functions. We do this fairly late
* (post-SMP) because the time bases and scale factors need to be updated
serial_init_postirq();
- BUG_ON(!local_irq_is_enabled());
- spin_debug_enable();
-
for_each_present_cpu ( i )
{
if ( num_online_cpus() >= max_cpus )