[PATCH v2] Xen PCI backend driver.

From: Konrad Rzeszutek Wilk
Date: Mon Dec 13 2010 - 13:03:31 EST


Attached is set of patches for the Xen PCI backend driver. Lot of driver pieces
have been reviewed in the past, but I don't recall it being sent to xen-devel.
The infrastructure parts (patches #1-#6) were posted at some point.

The Xen PCI back driver patch (#7) was squished from the git tree
(devel/xen-pciback-0.2) as some of them were just boring (supporting 2.6.18
driver to work, checkpatch), and some already posted/reviewed. The
full tree is available at:

git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git devel/xen-pciback-0.2

.. and that is the tree I will use when asking Linus to pull the
driver.

So what is Xen PCI backend? It is a simple driver that utilizes the
ring-buffer to exchange 0xcf8 inb/outb commands from the guest to
the control domain. The backend carries out sanitized PCI configuration
reads/writes on behest of the guest. It also has some extra commands
for enabling/disabling MSI/MSI-X interrupts.

Please take a look at the patches (or even just a couple of them)
and provide feedback.

The patch set depends on stable/xenbus, which is back-port of XenBus
backend driver done by Ian Campbell. A merge of this tree along with
stable/xenbus is available as:

git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git master

The diffstat:

arch/x86/include/asm/xen/pci.h | 16 +
arch/x86/pci/xen.c | 73 ++
drivers/xen/Kconfig | 65 ++
drivers/xen/Makefile | 1 +
drivers/xen/events.c | 68 ++-
drivers/xen/pciback/Makefile | 17 +
drivers/xen/pciback/conf_space.c | 435 +++++++
drivers/xen/pciback/conf_space.h | 126 +++
drivers/xen/pciback/conf_space_capability.c | 66 ++
drivers/xen/pciback/conf_space_capability.h | 26 +
drivers/xen/pciback/conf_space_capability_msi.c | 111 ++
drivers/xen/pciback/conf_space_capability_pm.c | 113 ++
drivers/xen/pciback/conf_space_capability_vpd.c | 40 +
drivers/xen/pciback/conf_space_header.c | 385 +++++++
drivers/xen/pciback/conf_space_quirks.c | 140 +++
drivers/xen/pciback/conf_space_quirks.h | 35 +
drivers/xen/pciback/controller.c | 442 ++++++++
drivers/xen/pciback/passthrough.c | 178 +++
drivers/xen/pciback/pci_stub.c | 1371 +++++++++++++++++++++++
drivers/xen/pciback/pciback.h | 142 +++
drivers/xen/pciback/pciback_ops.c | 241 ++++
drivers/xen/pciback/slot.c | 191 ++++
drivers/xen/pciback/vpci.c | 244 ++++
drivers/xen/pciback/xenbus.c | 726 ++++++++++++
include/xen/events.h | 9 +
25 files changed, 5258 insertions(+), 3 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/