Re: [RFC PATCH v4 04/10] vfio/pci: let vfio_pci know number of vendor regions and vendor irqs

David Edmondson
2020-06-11T12:31:13Z

On Thursday, 2020-06-04 at 22:15:42 -04, Yan Zhao wrote:

> 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.zhao@intel.com> wrote:
>>
>> > This allows a simpler VFIO_DEVICE_GET_INFO ioctl in vendor driver
>> >
>> > Cc: Kevin Tian <kevin.tian@intel.com>
>> > Signed-off-by: Yan Zhao <yan.y.zhao@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.

That seems like a bad precedent - the caller may not be QEMU.

dme.
--
I'm not the reason you're looking for redemption.