vfio_group_fops_open() ensures there is only ever one struct file open for any struct vfio_group at any time: /* Do we need multiple instances of the group open? Seems not. */ opened = atomic_cmpxchg(&group->opened, 0, 1); if (opened) { vfio_group_put(group); return -EBUSY; Therefor the struct file * can be used directly to search the list of VFIO groups that KVM keeps instead of using the vfio_external_group_match_file() callback to try to figure out if the passed in FD matches the list or not. Delete vfio_external_group_match_file().
Showing the changes to include (1 of 3 files). Show all
Unified · Split
| @@ -138,8 +138,6 @@ int vfio_mig_get_next_state(struct vfio_device *device, · 137 unmodified lines | ||
| 138 | 138 | */ |
| 139 | 139 | extern struct vfio_group *vfio_group_get_external_user(struct file *filep); |
| 140 | 140 | extern void vfio_group_put_external_user(struct vfio_group *group); |
| 141 | −extern bool vfio_external_group_match_file(struct vfio_group *group, | |
| 142 | − struct file *filep); | |
| 143 | 141 | extern struct iommu_group *vfio_file_iommu_group(struct file *file); |
| 144 | 142 | extern long vfio_external_check_extension(struct vfio_group *group, |
| 145 | 143 | unsigned long arg); |