[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 2/3] xen: Map physical interrupt before setting up GSI


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Bastian Blank <waldi@xxxxxxxxxx>
  • Date: Wed, 24 Mar 2010 12:52:55 +0100
  • Delivery-date: Wed, 24 Mar 2010 04:53:44 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Signed-off-by: Bastian Blank <waldi@xxxxxxxxxx>
---
 arch/x86/xen/pci.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
index a83c74c..eabb512 100644
--- a/arch/x86/xen/pci.c
+++ b/arch/x86/xen/pci.c
@@ -45,6 +45,17 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity)
        if (irq < 0)
                return irq;
 
+       map_irq.domid = DOMID_SELF;
+       map_irq.type = MAP_PIRQ_TYPE_GSI;
+       map_irq.index = gsi;
+       map_irq.pirq = irq;
+
+       rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
+       if (rc) {
+               printk(KERN_WARNING "xen map irq failed %d\n", rc);
+               return -1;
+       }
+
        setup_gsi.gsi = gsi;
        setup_gsi.triggering = (triggering == ACPI_EDGE_SENSITIVE ?
                        0 : 1);
@@ -59,17 +70,6 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity)
                BUG();
        }
 
-       map_irq.domid = DOMID_SELF;
-       map_irq.type = MAP_PIRQ_TYPE_GSI;
-       map_irq.index = gsi;
-       map_irq.pirq = irq;
-
-       rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
-       if (rc) {
-               printk(KERN_WARNING "xen map irq failed %d\n", rc);
-               return -1;
-       }
-
        return irq;
 }
 
-- 
1.7.0


-- 
It is undignified for a woman to play servant to a man who is not hers.
                -- Spock, "Amok Time", stardate 3372.7

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.