This allows a simpler VFIO_DEVICE_GET_INFO ioctl in vendor driver Signed-off-by: Yan Zhao <yan.y.zhao@xxxxxxxxx> --- drivers/vfio/pci/vfio_pci.c | 3 ++- include/linux/vfio.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c index e5bfb4948667..9e5d878f5f32 100644 --- a/drivers/vfio/pci/vfio_pci.c +++ b/drivers/vfio/pci/vfio_pci.c @@ -727,7 +727,8 @@ long vfio_pci_ioctl(void *device_data, if (priv->reset_works) info.flags |= VFIO_DEVICE_FLAGS_RESET; - info.num_regions = VFIO_PCI_NUM_REGIONS + vdev->num_regions; + info.num_regions = VFIO_PCI_NUM_REGIONS + vdev->num_regions + + vdev->num_vendor_regions; info.num_irqs = VFIO_PCI_NUM_IRQS; return copy_to_user((void __user *)arg, &info, minsz) ? diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 71a03471b208..4d7e80b2ed1b 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -208,6 +208,7 @@ void vfio_pci_unregister_vendor_driver(struct vfio_device_ops *device_ops); struct vfio_pci_device { struct pci_dev *pdev; int num_regions; + int num_vendor_regions; int irq_type; void *vendor_data; }; -- 2.17.1