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



To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH PV_OPS PCIFRONT]
From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: Thu, 5 Nov 2009 16:33:08 -0500
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Delivery-date: Thu, 05 Nov 2009 13:39:07 -0800
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
The following patches provide pcifront support for the Linux pv-ops kernel.

The first two lay some groundwork, neccessary for the driver to function
in a PV non-privileged domain capacity:

 [PATCH 01/31] [xen-core] Provide a variant of xen_poll_irq with timeout.
 [PATCH 02/31] Enable Xen-SWIOTLB if running in [non-]privileged and disable 
the Xen-IOMMU if an IOMMU is detected.

The next fourteen ones that follow it, are simple fixes to shape the
driver into compiling on the kernel.
 [PATCH 03/31] Initial copy from linux-2.6.18.hg of the pcifront driver.
 [PATCH 04/31] Fix include header name change.
 [PATCH 05/31] Fix compile warning: ignoring return value of 
'pci_bus_add_device', declared with attribute warn_unused_result
 [PATCH 06/31] Fix compile warning: passing argument 2 of 'pci_walk_bus' from 
incompatible pointer type
 [PATCH 07/31] Fix compile error. The  bind_to_irq_handler has different 
 [PATCH 08/31] Fix compile error: implicit declaration of function 'virt_to_mfn'
 [PATCH 09/31] Fix compile error: implicit declaration of function 
 [PATCH 10/31] Fix compile error: implicit declaration of function 
 [PATCH 11/31] Fix compile error: too few arguments to function 
 [PATCH 12/31] Remove function declerations (CONFIG_PCI_DOMAIN) that exist in 
recent kernels.
 [PATCH 13/31] Fix uage of INIT_WORK.
 [PATCH 14/31] Add proper check to see if running under Xen.
 [PATCH 15/31] Improper assumption that event channel == IRQ number.
 [PATCH 16/31] Replace HYPERVISOR_poll with 'xen_poll_irq_timout' function.

The next eight are to squish the driver from its set of various files,
in a xen-pcifront.c driver. No new functionality is added - just squishing
and removing pieces that don't make sense:
 [PATCH 17/31] Coalesce pci.c functions in xenbus.c.
 [PATCH 18/31] Coalesce xen/pcifront.h in drivers/xen/pcifront/pcifront.h
 [PATCH 19/31] Remove ia64 from pcifront.c support.
 [PATCH 20/31] Remove unused pci_bus_sem extern, as we don't use it.
 [PATCH 21/31] Coalesce pcifront.h in xenbus.c.
 [PATCH 22/31] Coalesce pci_op.c in xenbus.c.
 [PATCH 23/31] Remove unnecessary function declerations.
 [PATCH 24/31] Rename the drivers/xen/pcifront/* driver to 

At this point, we have a driver that compiles, but does not
actuall work. The next one makes it bootable:
 [PATCH 25/31] Change the boot-order of initialising the PCI frontend.

And at this point, I've decided to clean up the driver. Running
it through the checkpatch showed a wealth of warning which I've
rolled up in one patch:
 [PATCH 26/31] Fix warnings/errors reported by checkpatch.pl on xen-pcifront.c

The next five are neccessary to make the Xen core functionality provide
an IRQ for the INTx and MSI devices:
 [PATCH 27/31] Find an unbound irq number in reverse order (high to low).
 [PATCH 28/31] For non-privileged domains, implement a pcibios_enable_irq 
(xen_pcifront_enable_irq) function.
 [PATCH 29/31] xen_destroy_irq + xen_allocate_pirq in PV non-priv mode should 
not make certain Xen-HYPERCALLs.
 [PATCH 30/31] Add pci_frontend_[enable|disable]_[msi|msix] function 
decleration and EXPORT_SYMBOL_GPL.
 [PATCH 31/31] To enable MSI devices in a non-privileged PV domain use 

That is it for right now. The driver works with INTx and MSI cards. I've tested
with USB and network (Broadcom) succesfully. There is still some more work to 
 - MSI disable is not yet in,
 - no MSI-X enable/disable functionality.

Xen-devel mailing list