aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/i386')
-rw-r--r--xen/arch/i386/io_apic.c2
-rw-r--r--xen/arch/i386/irq.c4
-rw-r--r--xen/arch/i386/setup.c8
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