aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/io_apic.c
diff options
context:
space:
mode:
authorAndrew Cooper <andrew.cooper3@citrix.com>2012-02-23 09:58:47 +0000
committerAndrew Cooper <andrew.cooper3@citrix.com>2012-02-23 09:58:47 +0000
commit23c3c39665e641c17bc02a411e1a483554393610 (patch)
tree774fe4a42bcfe64ab7e62abc849cc1be1b862713 /xen/arch/x86/io_apic.c
parentd77aed8fdabdf67f6af144d90ed791d56ec1b85f (diff)
downloadxen-23c3c39665e641c17bc02a411e1a483554393610.tar.gz
xen-23c3c39665e641c17bc02a411e1a483554393610.tar.bz2
xen-23c3c39665e641c17bc02a411e1a483554393610.zip
IO-APIC: Prevent using EOI broadcast suppression if user specified ioapic_ack=new on the command line.
Currently, if EOI broadcast suppression is advertised on the BSP LAPIC, Xen will discard any user specified option regarding IO-APIC ack mode. This patch introduces a check which prevents EOI Broadcast suppression from forcing the IO-APIC ack mode to old if the user has explicitly asked for the new ack mode on the command line. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/io_apic.c')
-rw-r--r--xen/arch/x86/io_apic.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 1c8334924a..31f1541aea 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -44,6 +44,7 @@ static DEFINE_SPINLOCK(ioapic_lock);
bool_t __read_mostly skip_ioapic_setup;
bool_t __read_mostly ioapic_ack_new = 1;
+bool_t __read_mostly ioapic_ack_forced = 0;
#ifndef sis_apic_bug
/*
@@ -1543,9 +1544,15 @@ static unsigned int startup_level_ioapic_irq(struct irq_desc *desc)
static void __init setup_ioapic_ack(char *s)
{
if ( !strcmp(s, "old") )
+ {
ioapic_ack_new = 0;
+ ioapic_ack_forced = 1;
+ }
else if ( !strcmp(s, "new") )
+ {
ioapic_ack_new = 1;
+ ioapic_ack_forced = 1;
+ }
else
printk("Unknown ioapic_ack value specified: '%s'\n", s);
}