[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Allow all unused GSI to be configured via IO-APIC by new pv_ops dom0
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1270112127 -3600 # Node ID 5374514774693ed2710596b8d1931256c01b02ee # Parent 0bbf5454cd14cbf8631ceb55860ee2643b5c2ea3 Allow all unused GSI to be configured via IO-APIC by new pv_ops dom0 Currently Xen disallows setting up any GSI < 16. This makes it impossible by the kernel to use any PCI devices without ACPI override but a mapping to this interrupts via IO-APIC. The patch allows all unused interrupts to be setup via IO-APIC. Signed-off-by: Bastian Blank <waldi@xxxxxxxxxx> --- xen/arch/x86/mpparse.c | 4 ++++ xen/arch/x86/physdev.c | 8 ++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff -r 0bbf5454cd14 -r 537451477469 xen/arch/x86/mpparse.c --- a/xen/arch/x86/mpparse.c Thu Apr 01 09:47:49 2010 +0100 +++ b/xen/arch/x86/mpparse.c Thu Apr 01 09:55:27 2010 +0100 @@ -1103,6 +1103,7 @@ int mp_register_gsi (u32 gsi, int trigge int ioapic = -1; int ioapic_pin = 0; int idx, bit = 0; + /* * Mapping between Global System Interrups, which * represent all possible interrupts, and IRQs @@ -1125,6 +1126,9 @@ int mp_register_gsi (u32 gsi, int trigge if (ioapic_renumber_irq) gsi = ioapic_renumber_irq(ioapic, gsi); + + if (!(irq_to_desc(gsi)->status & IRQ_DISABLED)) + return -EEXIST; /* * Avoid pin reprogramming. PRTs typically include entries diff -r 0bbf5454cd14 -r 537451477469 xen/arch/x86/physdev.c --- a/xen/arch/x86/physdev.c Thu Apr 01 09:47:49 2010 +0100 +++ b/xen/arch/x86/physdev.c Thu Apr 01 09:55:27 2010 +0100 @@ -476,12 +476,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H ret = -EINVAL; if ( setup_gsi.gsi < 0 || setup_gsi.gsi >= nr_irqs_gsi ) break; - /* GSI < 16 has been setup by hypervisor */ - if ( setup_gsi.gsi >= 16 ) - ret = mp_register_gsi(setup_gsi.gsi, setup_gsi.triggering, - setup_gsi.polarity); - else - ret = -EEXIST; + ret = mp_register_gsi(setup_gsi.gsi, setup_gsi.triggering, + setup_gsi.polarity); break; } default: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |