WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] Allow all unused GSI to be configured via IO-APIC

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] Allow all unused GSI to be configured via IO-APIC
From: Bastian Blank <waldi@xxxxxxxxxx>
Date: Wed, 24 Mar 2010 12:17:36 +0100
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Wed, 24 Mar 2010 04:18:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
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>

diff -r 7b63f677f245 xen/arch/x86/mpparse.c
--- a/xen/arch/x86/mpparse.c    Thu Mar 18 11:03:07 2010 +0000
+++ b/xen/arch/x86/mpparse.c    Wed Mar 24 12:13:11 2010 +0100
@@ -1103,6 +1103,7 @@
        int                     ioapic = -1;
        int                     ioapic_pin = 0;
        int                     idx, bit = 0;
+
        /*
         * Mapping between Global System Interrups, which
         * represent all possible interrupts, and IRQs
@@ -1126,6 +1127,9 @@
        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  
         * with redundant pin->gsi mappings (but unique PCI devices);
diff -r 7b63f677f245 xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c    Thu Mar 18 11:03:07 2010 +0000
+++ b/xen/arch/x86/physdev.c    Wed Mar 24 12:13:11 2010 +0100
@@ -476,12 +476,8 @@
         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,
+        ret = mp_register_gsi(setup_gsi.gsi, setup_gsi.triggering,
                             setup_gsi.polarity);
-        else 
-            ret = -EEXIST;
         break; 
     }
     default:
-- 
Hailing frequencies open, Captain.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] Allow all unused GSI to be configured via IO-APIC, Bastian Blank <=