On Thu, Jun 04, 2020 at 05:25:15PM +0200, Cornelia Huck wrote: > On Sun, 17 May 2020 22:49:44 -0400 > Yan Zhao <yan.y.z...@intel.com> wrote: > > > This allows a simpler VFIO_DEVICE_GET_INFO ioctl in vendor driver > > > > Cc: Kevin Tian <kevin.t...@intel.com> > > Signed-off-by: Yan Zhao <yan.y.z...@intel.com> > > --- > > drivers/vfio/pci/vfio_pci.c | 23 +++++++++++++++++++++-- > > drivers/vfio/pci/vfio_pci_private.h | 2 ++ > > include/linux/vfio.h | 3 +++ > > 3 files changed, 26 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c > > index 290b7ab55ecf..30137c1c5308 100644 > > --- a/drivers/vfio/pci/vfio_pci.c > > +++ b/drivers/vfio/pci/vfio_pci.c > > @@ -105,6 +105,24 @@ void *vfio_pci_vendor_data(void *device_data) > > } > > EXPORT_SYMBOL_GPL(vfio_pci_vendor_data); > > > > +int vfio_pci_set_vendor_regions(void *device_data, int num_vendor_regions) > > +{ > > + struct vfio_pci_device *vdev = device_data; > > + > > + vdev->num_vendor_regions = num_vendor_regions; > > Do we need any kind of sanity check here, in case this is called with a > bogus value? > you are right. it at least needs to be >=0. maybe type of "unsigned int" is more appropriate for num_vendor_regions. we don't need to check its max value as QEMU would check it.
> > + return 0; > > +} > > +EXPORT_SYMBOL_GPL(vfio_pci_set_vendor_regions); > > + > > + > > +int vfio_pci_set_vendor_irqs(void *device_data, int num_vendor_irqs) > > +{ > > + struct vfio_pci_device *vdev = device_data; > > + > > + vdev->num_vendor_irqs = num_vendor_irqs; > > Here as well. yes. will change the type to "unsigned int". Thank you for kindly reviewing:) Yan > > > + return 0; > > +} > > +EXPORT_SYMBOL_GPL(vfio_pci_set_vendor_irqs); > > /* > > * Our VGA arbiter participation is limited since we don't know anything > > * about the device itself. However, if the device is the only VGA device > > (...) >