aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/vfio/pci/vfio_pci.c6
-rw-r--r--drivers/vfio/pci/vfio_pci_private.h3
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
67struct vfio_pci_region { 70struct vfio_pci_region {