Pull VFIO updates from Alex Williamson: - vfio-pci SR-IOV support (Alex Williamson) - vfio DMA read/write interface (Yan Zhao) - Fix vfio-platform erroneous IRQ error log (Eric Auger) - Fix shared ATSD support for NVLink on POWER (Sam Bobroff) - Fix init error without CONFIG_IOMMU_DMA (Andre Przywara) * tag 'vfio-v5.7-rc1' of git://github.com/awilliam/linux-vfio: vfio: Ignore -ENODEV when getting MSI cookie vfio-pci/nvlink2: Allow fallback to ibm,mmio-atsd[0] vfio/pci: Cleanup .probe() exit paths vfio/pci: Remove dev_fmt definition vfio/pci: Add sriov_configure support vfio: Introduce VFIO_DEVICE_FEATURE ioctl and first user vfio/pci: Introduce VF token vfio/pci: Implement match ops vfio: Include optional device match in vfio_device_ops callbacks vfio: avoid inefficient operations on VFIO group in vfio_pin/unpin_pages vfio: introduce vfio_dma_rw to read/write a range of IOVAs vfio: allow external user to get vfio group from device vfio: platform: Switch to platform_get_irq_optional()
Showing the changes to include/uapi/linux (1 of 8 files). Show all
Unified · Split
| @@ -707,6 +707,43 @@ struct vfio_device_ioeventfd { · 706 unmodified lines | |||
| 707 | 707 | ||
| 708 | #define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16) | 708 | #define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16) |
| 709 | 709 | ||
| 710 | /** | ||
| 711 | * VFIO_DEVICE_FEATURE - _IORW(VFIO_TYPE, VFIO_BASE + 17, | ||
| 712 | * struct vfio_device_feature) | ||
| 713 | * | ||
| 714 | * Get, set, or probe feature data of the device. The feature is selected | ||
| 715 | * using the FEATURE_MASK portion of the flags field. Support for a feature | ||
| 716 | * can be probed by setting both the FEATURE_MASK and PROBE bits. A probe | ||
| 717 | * may optionally include the GET and/or SET bits to determine read vs write | ||
| 718 | * access of the feature respectively. Probing a feature will return success | ||
| 719 | * if the feature is supported and all of the optionally indicated GET/SET | ||
| 720 | * methods are supported. The format of the data portion of the structure is | ||
| 721 | * specific to the given feature. The data portion is not required for | ||
| 722 | * probing. GET and SET are mutually exclusive, except for use with PROBE. | ||
| 723 | * | ||
| 724 | * Return 0 on success, -errno on failure. | ||
| 725 | */ | ||
| 726 | struct vfio_device_feature { | ||
| 727 | __u32 argsz; | ||
| 728 | __u32 flags; | ||
| 729 | #define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */ | ||
| 730 | #define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */ | ||
| 731 | #define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */ | ||
| 732 | #define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */ | ||
| 733 | __u8 data[]; | ||
| 734 | }; | ||
| 735 | |||
| 736 | #define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17) | ||
| 737 | |||
| 738 | /* | ||
| 739 | * Provide support for setting a PCI VF Token, which is used as a shared | ||
| 740 | * secret between PF and VF drivers. This feature may only be set on a | ||
| 741 | * PCI SR-IOV PF when SR-IOV is enabled on the PF and there are no existing | ||
| 742 | * open VFs. Data provided when setting this feature is a 16-byte array | ||
| 743 | * (__u8 b[16]), representing a UUID. | ||
| 744 | */ | ||
| 745 | #define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0) | ||
| 746 | |||
| 710 | /* -------- API for Type1 VFIO IOMMU -------- */ | 747 | /* -------- API for Type1 VFIO IOMMU -------- */ |
| 711 | 748 | ||
| 712 | /** | 749 | /** |