diff options
Diffstat (limited to 'xen/arch/i386')
-rw-r--r-- | xen/arch/i386/io_apic.c | 2 | ||||
-rw-r--r-- | xen/arch/i386/irq.c | 4 | ||||
-rw-r--r-- | xen/arch/i386/setup.c | 8 |
3 files changed, 9 insertions, 5 deletions
diff --git a/xen/arch/i386/io_apic.c b/xen/arch/i386/io_apic.c index 878c189afb..6ad37f2399 100644 --- a/xen/arch/i386/io_apic.c +++ b/xen/arch/i386/io_apic.c @@ -826,7 +826,6 @@ void __init print_IO_APIC(void) UNEXPECTED_IO_APIC(); } -#if 0 printk(KERN_DEBUG ".... IRQ redirection table:\n"); printk(KERN_DEBUG " NR Log Phy Mask Trig IRR Pol" @@ -871,7 +870,6 @@ void __init print_IO_APIC(void) entry = irq_2_pin + entry->next; } printk("\n"); -#endif } printk(KERN_INFO ".................................... done.\n"); diff --git a/xen/arch/i386/irq.c b/xen/arch/i386/irq.c index 312cfe7970..6485b6ba15 100644 --- a/xen/arch/i386/irq.c +++ b/xen/arch/i386/irq.c @@ -537,7 +537,9 @@ asmlinkage unsigned int do_IRQ(struct pt_regs regs) do_softirq(); rdtscl(cc_end); - perfc_adda(irq_time, cpu, cc_end - cc_start); + + if(!action || (!(action->flags & SA_NOPROFILE)) ) + perfc_adda(irq_time, cpu, cc_end - cc_start); return 1; } diff --git a/xen/arch/i386/setup.c b/xen/arch/i386/setup.c index f4f62c2b02..1e5f35a73e 100644 --- a/xen/arch/i386/setup.c +++ b/xen/arch/i386/setup.c @@ -292,7 +292,7 @@ void __init start_of_day(void) extern void initialize_keytable(); extern void initialize_serial(void); extern void initialize_keyboard(void); - + extern int opt_nosmp; unsigned long low_mem_size; /* @@ -327,7 +327,11 @@ void __init start_of_day(void) #ifndef CONFIG_SMP APIC_init_uniprocessor(); #else - smp_boot_cpus(); /* + if( opt_nosmp ) + APIC_init_uniprocessor(); + else + smp_boot_cpus(); + /* * Does loads of stuff, including kicking the local * APIC, and the IO APIC after other CPUs are booted. * Each IRQ is preferably handled by IO-APIC, but |