[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH PV_OPS PCIFRONT]



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 
arguments.
 [PATCH 08/31] Fix compile error: implicit declaration of function 'virt_to_mfn'
 [PATCH 09/31] Fix compile error: implicit declaration of function 
'clear_evtchn'
 [PATCH 10/31] Fix compile error: implicit declaration of function 
'gnttab_end_foreign_access'
 [PATCH 11/31] Fix compile error: too few arguments to function 
'gnttab_end_foreign_access'
 [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 
drivers/pci/xen-pcifront.c.

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 
pci_frontend_enable_msi.

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 
do:
 - MSI disable is not yet in,
 - no MSI-X enable/disable functionality.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.