On Tue, 2014-12-09 at 15:24 +0100, Antonios Motakis wrote: > On Sun, Dec 7, 2014 at 8:12 PM, Alex Williamson > <alex.williamson@xxxxxxxxxx> wrote: > > > > On Thu, 2014-11-27 at 18:32 +0100, Antonios Motakis wrote: > > > This patch series aims to implement VFIO support for platform devices that > > > reside behind an IOMMU. Examples of such devices are devices behind an ARM > > > SMMU, or behind a Samsung Exynos System MMU. > > > > > > The API used is based on the existing VFIO API that is also used with PCI > > > devices. Only devices that include a basic set of IRQs and memory regions are > > > targeted; devices with complex relationships with other devices on a device > > > tree are not taken into account at this stage. > > > > > > This patch series may be applied on the following series/patches: > > > - [PATCH] driver core: amba: add device binding path 'driver_override' > > > - [PATCH v3 0/6] vfio: type1: support for ARM SMMUS with VFIO_IOMMU_TYPE1 > > > > > > A copy can be cloned from the branch vfio-platform-v10 at: > > > git@xxxxxxxxxx:virtualopensystems/linux-kvm-arm.git > > > > Hi Antonios, > > > > Sorry for the delay in reviewing. Between this and your v3 0/6 series, > > the only nits I have are: > > > > * 2/6 is unneeded, Will already provided a patch to enable type1 > > on ARM that's currently in -next. That patch is easily dropped > > with no modification to the series, no need to resend. > > * 04/20 has a kasprintf() with unchecked return value. > > > > If you want to just send a new 04/20 with that trivial fix, that'd be > > fine. Looks like I'll need to wait until Joerg's next branch pull is > > accepted before I can merge these in. Thanks, > > Done. However if I'm not missing something, it seems this would still > be blocked by the patch "driver core: amba: add device binding path > 'driver_override'" (at least the AMBA part). If you want to wait for that to be accepted, it's fine by me. Thanks, Alex > > > Changes since v9: > > > - Reworked the splitting of the patches that decouple virqfd from PCI > > > - Some styling issues and typos > > > - Removed superfluous includes > > > - AMBA devices are now named vfio-amba- suffixed by the AMBA device id > > > - Several other cleanups and fixes > > > Changes since v8: > > > - Separate irq handler for edge and level triggered interrupts > > > - Mutex based lock for VFIO fd open/release > > > - Fixed bug where the first region of a platform device wasn't exposed > > > - Read only regions can be MMAPed only read only > > > - Code cleanups > > > Changes since v7: > > > - Some initial placeholder functionality for PIO resources > > > - Cleaned up code for IRQ triggering, masking and unmasking > > > - Some functionality has been removed from this series and posted separately: > > > - VFIO_IOMMU_TYPE1 support for ARM SMMUs > > > - IOMMU NOEXEC patches > > > - driver_override functionality for AMBA devices > > > - Several fixes > > > Changes since v6: > > > - Integrated support for AMBA devices > > > - Numerous cleanups and fixes > > > Changes since v5: > > > - Full eventfd support for IRQ masking and unmasking. > > > - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO. > > > - Other fixes based on reviewer comments. > > > Changes since v4: > > > - Use static offsets for each region in the VFIO device fd > > > - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC > > > availability via IOMMU_CAP_DMA_EXEC > > > - Rebased on VFIO multi domain support: > > > - IOMMU_EXEC is now available if at least one IOMMU in the container > > > supports it > > > - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC > > > - Some bug fixes > > > Changes since v3: > > > - Use Kim Phillips' driver_probe_device() > > > Changes since v2: > > > - Fixed Read/Write and MMAP on device regions > > > - Removed dependency on Device Tree > > > - Interrupts support > > > - Interrupt masking/unmasking > > > - Automask level sensitive interrupts > > > - Introduced VFIO_DMA_MAP_FLAG_EXEC > > > - Code clean ups > > > > > > Antonios Motakis (20): > > > vfio/platform: initial skeleton of VFIO support for platform devices > > > vfio: platform: probe to devices on the platform bus > > > vfio: platform: add the VFIO PLATFORM module to Kconfig > > > vfio: amba: VFIO support for AMBA devices > > > vfio: amba: add the VFIO for AMBA devices module to Kconfig > > > vfio/platform: return info for bound device > > > vfio/platform: return info for device memory mapped IO regions > > > vfio/platform: read and write support for the device fd > > > vfio/platform: support MMAP of MMIO regions > > > vfio/platform: return IRQ info > > > vfio/platform: initial interrupts support code > > > vfio/platform: trigger an interrupt via eventfd > > > vfio/platform: support for level sensitive interrupts > > > vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and > > > export > > > vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit > > > vfio: add local lock for virqfd instead of depending on VFIO PCI > > > vfio: pass an opaque pointer on virqfd initialization > > > vfio: move eventfd support code for VFIO_PCI to a separate file > > > vfio: initialize the virqfd workqueue in VFIO generic code > > > vfio/platform: implement IRQ masking/unmasking via an eventfd > > > > > > drivers/vfio/Kconfig | 1 + > > > drivers/vfio/Makefile | 5 +- > > > drivers/vfio/pci/vfio_pci.c | 8 - > > > drivers/vfio/pci/vfio_pci_intrs.c | 238 +----------- > > > drivers/vfio/pci/vfio_pci_private.h | 3 - > > > drivers/vfio/platform/Kconfig | 19 + > > > drivers/vfio/platform/Makefile | 8 + > > > drivers/vfio/platform/vfio_amba.c | 110 ++++++ > > > drivers/vfio/platform/vfio_platform.c | 103 +++++ > > > drivers/vfio/platform/vfio_platform_common.c | 520 ++++++++++++++++++++++++++ > > > drivers/vfio/platform/vfio_platform_irq.c | 331 ++++++++++++++++ > > > drivers/vfio/platform/vfio_platform_private.h | 82 ++++ > > > drivers/vfio/vfio.c | 8 + > > > drivers/vfio/virqfd.c | 213 +++++++++++ > > > include/linux/vfio.h | 27 ++ > > > include/uapi/linux/vfio.h | 2 + > > > 16 files changed, 1442 insertions(+), 236 deletions(-) > > > create mode 100644 drivers/vfio/platform/Kconfig > > > create mode 100644 drivers/vfio/platform/Makefile > > > create mode 100644 drivers/vfio/platform/vfio_amba.c > > > create mode 100644 drivers/vfio/platform/vfio_platform.c > > > create mode 100644 drivers/vfio/platform/vfio_platform_common.c > > > create mode 100644 drivers/vfio/platform/vfio_platform_irq.c > > > create mode 100644 drivers/vfio/platform/vfio_platform_private.h > > > create mode 100644 drivers/vfio/virqfd.c > > > > > > > > > _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm