Volodymyr Babchuk <volodymyr_babchuk@epam.com> writes:
Hello again,
Looks like I messed up with add_maintainers script and sent this series
without proper CCs. So I am CCing all interested persons only in this
cover letter only.
Sorry for the noise.
> Hello,
>
> This is next version of vPCI rework. Aim of this series is to prepare
> ground for introducing PCI support on ARM platform.
>
> The biggest change from previous, mistakenly named, v7 series is how
> locking is implemented. Instead of d->vpci_rwlock we introduce
> d->pci_lock which has broader scope, as it protects not only domain's
> vpci state, but domain's list of PCI devices as well.
>
> As we discussed in IRC with Roger, it is not feasible to rework all
> the existing code to use the new lock right away. It was agreed that
> any write access to d->pdev_list will be protected by **both**
> d->pci_lock in write mode and pcidevs_lock(). Read access on other
> hand should be protected by either d->pci_lock in read mode or
> pcidevs_lock(). It is expected that existing code will use
> pcidevs_lock() and new users will use new rw lock. Of course, this
> does not mean that new users shall not use pcidevs_lock() when it is
> appropriate.
>
> Apart from locking scheme rework, there are less major fixes in some
> patches, based on the review comments.
>
> Oleksandr Andrushchenko (12):
> vpci: use per-domain PCI lock to protect vpci structure
> vpci: restrict unhandled read/write operations for guests
> vpci: add hooks for PCI device assign/de-assign
> vpci/header: implement guest BAR register handlers
> rangeset: add RANGESETF_no_print flag
> vpci/header: handle p2m range sets per BAR
> vpci/header: program p2m with guest BAR view
> vpci/header: emulate PCI_COMMAND register for guests
> vpci/header: reset the command register when adding devices
> vpci: add initial support for virtual PCI bus topology
> xen/arm: translate virtual PCI bus topology for guests
> xen/arm: account IO handlers for emulated PCI MSI-X
>
> Volodymyr Babchuk (1):
> pci: introduce per-domain PCI rwlock
>
> xen/arch/arm/vpci.c | 61 ++-
> xen/arch/x86/hvm/vmsi.c | 4 +
> xen/common/domain.c | 1 +
> xen/common/rangeset.c | 5 +-
> xen/drivers/Kconfig | 4 +
> xen/drivers/passthrough/amd/pci_amd_iommu.c | 9 +-
> xen/drivers/passthrough/pci.c | 96 ++++-
> xen/drivers/passthrough/vtd/iommu.c | 9 +-
> xen/drivers/vpci/header.c | 453 ++++++++++++++++----
> xen/drivers/vpci/msi.c | 18 +-
> xen/drivers/vpci/msix.c | 56 ++-
> xen/drivers/vpci/vpci.c | 176 +++++++-
> xen/include/xen/pci.h | 1 +
> xen/include/xen/rangeset.h | 5 +-
> xen/include/xen/sched.h | 9 +
> xen/include/xen/vpci.h | 42 +-
> 16 files changed, 828 insertions(+), 121 deletions(-)
--
WBR, Volodymyr