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/
Home Products Support Community News


[Xen-devel] [PATCH][2/4] PCI Driver Domains: PCI Backend/Frontend

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH][2/4] PCI Driver Domains: PCI Backend/Frontend
From: Ryan <hap9@xxxxxxxxxxxxxx>
Date: Tue, 07 Feb 2006 09:37:01 -0500
Delivery-date: Tue, 07 Feb 2006 14:48:20 +0000
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Resubmitting the driver domain patches against the latest xen-unstable.
These should apply cleanly to 8772:55268b90a519.

Thanks to Dave Thompson for pointing out a bug in the PCI backend. His
fix is now included.

Other than changing the location of some files to reflect the new
sub-arch directory layout, the two significant changes for PCI driver
domains and 2.6.16-rc2 are:

1) Need to call pci_bus_add_devices after creating the bus (previously,
this used to be done for you as part of pci_scan_bus_parented).

2) arch/i386/pci/i386-xen.c needed to return. Calling
pci_assign_unassigned_resources in a driver domain with the PCI frontend
fails. The PCI backend restricts writing to the configuration space (it
would be dangerous if we let the driver domain change the resource
allocations in the BARs, see drivers/xen/pciback/conf_space_header.c for
how this is done). When pci_assign_unassigned_resources tries to update
the BARs, it will fail (and then the struct pci_dev's resources will not
reflect the real resources of the devices and things just won't work).
To fix this problem, I added a #ifdef around the call to
pci_assign_unassigned_resources in i386-xen.c so that it only works if
the PCI frontend is not compiled in. However, I'm not certain that this
is the best solution so please let me know if you can think of a better

Signed-off-by: Ryan Wilson <hap9@xxxxxxxxxxxxxx>

Attachment: pci-ddi.patch
Description: Text Data

Xen-devel mailing list