From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] Make new PCI device probe work with older hypervisors Date: Mon, 07 Jul 2008 15:37:23 +0100 Message-ID: References: <18546.8229.793718.252754@gargle.gargle.HOWL> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <18546.8229.793718.252754@gargle.gargle.HOWL> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Espen Skoglund Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org As long as setups with older dom0 kernels do not suffer feature regression when only the hypervisor is upgraded, I think it's fine. -- Keir On 7/7/08 14:54, "Espen Skoglund" wrote: > For older dom0 kernels Xen will not know which PCI devices exists in > the system. This has the implication that > > a) IOMMU device assignment will not work, and > b) assigning MSI interrupts will not work. > > The only way to avoid these "limitations" is to either perform PCI bus > enumaration at startup or to create new pci_devs on deamand (e.g., > when guest wants to assign an MSI to a new unknown device). > > Given that MSIs (and to a lesser extent IOMMUs) have only recently > found their way into Xen, I'm not sure whether it calls for having to > support a-few-weeks-old dom0s in Xen. > > eSk > > > [Keir Fraser] >> Thanks. One thing also -- do old dom0 kernels work with new Xen >> (i.e., do we have compatibility both ways)? > >> -- Keir > >> On 7/7/08 13:40, "Espen Skoglund" wrote: > >>> Be a bit more forgiving if hyervisor does not implement the >>> manage_pci_add hypercall. >>> >>> Signed-off-by: Espen Skoglund >>> >>> -- >>> diff -r bb937c2f7382 drivers/xen/core/pci.c >>> --- a/drivers/xen/core/pci.c Fri Jul 04 17:55:07 2008 +0100 >>> +++ b/drivers/xen/core/pci.c Mon Jul 07 13:34:32 2008 +0100 >>> @@ -19,7 +19,7 @@ >>> manage_pci.devfn = pci_dev->devfn; >>> >>> r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add, &manage_pci); >>> - if (r) >>> + if (r && r != -ENOSYS) >>> return r; >>> >>> r = pci_bus_probe(dev); >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xensource.com >>> http://lists.xensource.com/xen-devel > > >