diff options
-rw-r--r-- | drivers/vfio/pci/vfio_pci.c | 6 | ||||
-rw-r--r-- | drivers/vfio/pci/vfio_pci_private.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c index 9a86470f4ed9..0c94204e21f5 100644 --- a/drivers/vfio/pci/vfio_pci.c +++ b/drivers/vfio/pci/vfio_pci.c | |||
@@ -750,6 +750,12 @@ static long vfio_pci_ioctl(void *device_data, | |||
750 | if (ret) | 750 | if (ret) |
751 | return ret; | 751 | return ret; |
752 | 752 | ||
753 | if (vdev->region[i].ops->add_capability) { | ||
754 | ret = vdev->region[i].ops->add_capability(vdev, | ||
755 | &vdev->region[i], &caps); | ||
756 | if (ret) | ||
757 | return ret; | ||
758 | } | ||
753 | } | 759 | } |
754 | } | 760 | } |
755 | 761 | ||
diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h index 86aab05d3d46..93c1738dae11 100644 --- a/drivers/vfio/pci/vfio_pci_private.h +++ b/drivers/vfio/pci/vfio_pci_private.h | |||
@@ -62,6 +62,9 @@ struct vfio_pci_regops { | |||
62 | int (*mmap)(struct vfio_pci_device *vdev, | 62 | int (*mmap)(struct vfio_pci_device *vdev, |
63 | struct vfio_pci_region *region, | 63 | struct vfio_pci_region *region, |
64 | struct vm_area_struct *vma); | 64 | struct vm_area_struct *vma); |
65 | int (*add_capability)(struct vfio_pci_device *vdev, | ||
66 | struct vfio_pci_region *region, | ||
67 | struct vfio_info_cap *caps); | ||
65 | }; | 68 | }; |
66 | 69 | ||
67 | struct vfio_pci_region { | 70 | struct vfio_pci_region { |