vfio/pci: Use the struct file as the handle not the vfio_group
VFIO PCI does a security check as part of hot reset to prove that the user has permission to manipulate all the devices that will be impacted by the reset. Use a new API vfio_file_has_dev() to perform this security check against the struct file directly and remove the vfio_group from VFIO PCI. Since VFIO PCI was the last user of vfio_group_get_external_user() and vfio_group_put_external_user() remove it as well. Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Link: https://lore.kernel.org/r/8-v3-f7729924a7ea+25e33-vfio_kvm_no_group_jgg@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
3e5449d5f9
commit
6a985ae80b
3 changed files with 40 additions and 75 deletions
|
|
@ -138,11 +138,10 @@ int vfio_mig_get_next_state(struct vfio_device *device,
|
|||
/*
|
||||
* External user API
|
||||
*/
|
||||
extern struct vfio_group *vfio_group_get_external_user(struct file *filep);
|
||||
extern void vfio_group_put_external_user(struct vfio_group *group);
|
||||
extern struct iommu_group *vfio_file_iommu_group(struct file *file);
|
||||
extern bool vfio_file_enforced_coherent(struct file *file);
|
||||
extern void vfio_file_set_kvm(struct file *file, struct kvm *kvm);
|
||||
extern bool vfio_file_has_dev(struct file *file, struct vfio_device *device);
|
||||
|
||||
#define VFIO_PIN_PAGES_MAX_ENTRIES (PAGE_SIZE/sizeof(unsigned long))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue