> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Tuesday, August 16, 2022 12:50 AM > > This counts the number of devices attached to a vfio_group, ie the number > of items in the group->device_list. > > It is only read in vfio_pin_pages(), however that function already does > vfio_assert_device_open(). Given an opened device has to already be > properly setup with a group, this test and variable are redundant. Remove > it. I didn't get the rationale behind. The original check was for whether the group is singleton. Why is it equivalent to the condition of an opened device? Though I do think this check is unnecessary. All the devices in the group share the container and iommu domain which is what the pinning operation applies to. I'm not sure why the singleton restriction was added in the first place. > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > drivers/vfio/vfio_main.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c > index 7cb56c382c97a2..76a73890d853e6 100644 > --- a/drivers/vfio/vfio_main.c > +++ b/drivers/vfio/vfio_main.c > @@ -74,7 +74,6 @@ struct vfio_group { > struct list_head vfio_next; > struct list_head container_next; > enum vfio_group_type type; > - unsigned int dev_counter; > struct rw_semaphore group_rwsem; > struct kvm *kvm; > struct file *opened_file; > @@ -608,7 +607,6 @@ static int __vfio_register_dev(struct vfio_device > *device, > > mutex_lock(&group->device_lock); > list_add(&device->group_next, &group->device_list); > - group->dev_counter++; > mutex_unlock(&group->device_lock); > > return 0; > @@ -696,7 +694,6 @@ void vfio_unregister_group_dev(struct vfio_device > *device) > > mutex_lock(&group->device_lock); > list_del(&device->group_next); > - group->dev_counter--; > mutex_unlock(&group->device_lock); > > if (group->type == VFIO_NO_IOMMU || group->type == > VFIO_EMULATED_IOMMU) > @@ -1961,9 +1958,6 @@ int vfio_pin_pages(struct vfio_device *device, > dma_addr_t iova, > if (npage > VFIO_PIN_PAGES_MAX_ENTRIES) > return -E2BIG; > > - if (group->dev_counter > 1) > - return -EINVAL; > - > /* group->container cannot change while a vfio device is open */ > container = group->container; > driver = container->iommu_driver; > > base-commit: 568035b01cfb107af8d2e4bd2fb9aea22cf5b868 > -- > 2.37.2