Stefano Stabellini
2010-Jul-14 13:16 UTC
[Xen-devel] [PATCH] fix PV on HVM on xen/next-2.6.32
Hi Jeremy, this patch makes PV on HVM work on xen/next-2.6.32: gsi and msi remapping is not supported when running as HVM guests yet. I am working on irq remapping for HVM guests and I have a prototype working already but I think this simple fix is worth applying now anyway to fix HVM guests with this kernel as soon as possible. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> --- diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 17a44e1..b896649 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -3505,7 +3505,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) if (type == PCI_CAP_ID_MSI && nvec > 1) return 1; - if (xen_domain()) + if (xen_pv_domain()) return xen_pci_setup_msi_irqs(dev, nvec, type); node = dev_to_node(&dev->dev); diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c index 3def132..8ca31f1 100644 --- a/arch/x86/xen/pci.c +++ b/arch/x86/xen/pci.c @@ -23,7 +23,7 @@ int xen_register_pirq(u32 gsi, int triggering) int shareable = 0; char *name; - if (!xen_domain()) + if (!xen_pv_domain()) return -1; if (triggering == ACPI_EDGE_SENSITIVE) { @@ -61,7 +61,7 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity) int rc, irq; struct physdev_setup_gsi setup_gsi; - if (!xen_domain()) + if (!xen_pv_domain()) return -1; printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n", _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Łukasz Oleś
2010-Jul-15 10:58 UTC
Re: [Xen-devel] [PATCH] fix PV on HVM on xen/next-2.6.32
2010/7/14 Stefano Stabellini <stefano.stabellini@eu.citrix.com>:> Hi Jeremy, > this patch makes PV on HVM work on xen/next-2.6.32: gsi and msi > remapping is not supported when running as HVM guests yet. > > I am working on irq remapping for HVM guests and I have a prototype > working already but I think this simple fix is worth applying now anyway > to fix HVM guests with this kernel as soon as possible. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > --- > > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index 17a44e1..b896649 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/io_apic.c > @@ -3505,7 +3505,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) > if (type == PCI_CAP_ID_MSI && nvec > 1) > return 1; > > - if (xen_domain()) > + if (xen_pv_domain()) > return xen_pci_setup_msi_irqs(dev, nvec, type); > > node = dev_to_node(&dev->dev); > diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c > index 3def132..8ca31f1 100644 > --- a/arch/x86/xen/pci.c > +++ b/arch/x86/xen/pci.c > @@ -23,7 +23,7 @@ int xen_register_pirq(u32 gsi, int triggering) > int shareable = 0; > char *name; > > - if (!xen_domain()) > + if (!xen_pv_domain()) > return -1; > > if (triggering == ACPI_EDGE_SENSITIVE) { > @@ -61,7 +61,7 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity) > int rc, irq; > struct physdev_setup_gsi setup_gsi; > > - if (!xen_domain()) > + if (!xen_pv_domain()) > return -1; > > printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n",It was commited to xen/next and I tested it. Now it doesn''t hang on ACPI stuff. Thx Stefano. Now I''m getting kernel panic(kernel BUG at drivers/xen/balloon.c:528!), but I''ll send another mail with bug report. -- Łukasz Oleś _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel