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 | 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 | 747 | /* -------- API for Type1 VFIO IOMMU -------- */ |
| 711 | 748 | |
| 712 | 749 | /** |