History

Merge tag 'vfio-v3.12-rc0' of git://github.com/awilliam/linux-vfio

Pull VFIO update from Alex Williamson: "VFIO updates include safer default file flags for VFIO device fds, an external user interface exported to allow other modules to hold references to VFIO groups, a fix to test for extended config space on PCIe and PCI-x, and new hot reset interfaces for PCI devices which allows the user to do PCI bus/slot resets when all of the devices affected by the reset are owned by the user. For this last feature, the PCI bus reset interface, I depend on changes already merged from Bjorn's PCI pull request. I therefore merged my tree up to commit cb3e433, which I think was the correct action, but as Stephen Rothwell noted, I failed to provide a commit message indicating why the merge was required. Sorry for that. Thanks, Alex" * tag 'vfio-v3.12-rc0' of git://github.com/awilliam/linux-vfio: vfio: fix documentation vfio-pci: PCI hot reset interface vfio-pci: Test for extended config space vfio-pci: Use fdget() rather than eventfd_fget() vfio: Add O_CLOEXEC flag to vfio device fd vfio: use get_unused_fd_flags(0) instead of get_unused_fd() vfio: add external user support

Linus Torvalds committed 13 years ago

Commit d75671e2 parents bf97293 dac09b57 files · +421 −28Browse files

Showing the changes to include/uapi/linux (1 of 7 files). Show all

Unified · Split

include/uapi/linux/vfio.h+38−0
@@ -324,6 +324,44 @@ enum { · 323 unmodified lines
324324 VFIO_PCI_NUM_IRQS
325325 };
326326
327+/**
328+ * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12,
329+ * struct vfio_pci_hot_reset_info)
330+ *
331+ * Return: 0 on success, -errno on failure:
332+ * -enospc = insufficient buffer, -enodev = unsupported for device.
333+ */
334+struct vfio_pci_dependent_device {
335+ __u32 group_id;
336+ __u16 segment;
337+ __u8 bus;
338+ __u8 devfn; /* Use PCI_SLOT/PCI_FUNC */
339+};
340+
341+struct vfio_pci_hot_reset_info {
342+ __u32 argsz;
343+ __u32 flags;
344+ __u32 count;
345+ struct vfio_pci_dependent_device devices[];
346+};
347+
348+#define VFIO_DEVICE_GET_PCI_HOT_RESET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
349+
350+/**
351+ * VFIO_DEVICE_PCI_HOT_RESET - _IOW(VFIO_TYPE, VFIO_BASE + 13,
352+ * struct vfio_pci_hot_reset)
353+ *
354+ * Return: 0 on success, -errno on failure.
355+ */
356+struct vfio_pci_hot_reset {
357+ __u32 argsz;
358+ __u32 flags;
359+ __u32 count;
360+ __s32 group_fds[];
361+};
362+
363+#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
364+
327365 /* -------- API for Type1 VFIO IOMMU -------- */
328366
329367 /**