mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
vfio: Compile vfio_group infrastructure optionally
vfio_group is not needed for vfio device cdev, so with vfio device cdev introduced, the vfio_group infrastructures can be compiled out if only cdev is needed. Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Tested-by: Matthew Rosato <mjrosato@linux.ibm.com> Tested-by: Yanting Jiang <yanting.jiang@intel.com> Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> Tested-by: Terrence Xu <terrence.xu@intel.com> Tested-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Signed-off-by: Yi Liu <yi.l.liu@intel.com> Link: https://lore.kernel.org/r/20230718135551.6592-26-yi.l.liu@intel.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
@@ -43,7 +43,11 @@ struct vfio_device {
|
||||
*/
|
||||
const struct vfio_migration_ops *mig_ops;
|
||||
const struct vfio_log_ops *log_ops;
|
||||
#if IS_ENABLED(CONFIG_VFIO_GROUP)
|
||||
struct vfio_group *group;
|
||||
struct list_head group_next;
|
||||
struct list_head iommu_entry;
|
||||
#endif
|
||||
struct vfio_device_set *dev_set;
|
||||
struct list_head dev_set_list;
|
||||
unsigned int migration_flags;
|
||||
@@ -58,8 +62,6 @@ struct vfio_device {
|
||||
refcount_t refcount; /* user count on registered device*/
|
||||
unsigned int open_count;
|
||||
struct completion comp;
|
||||
struct list_head group_next;
|
||||
struct list_head iommu_entry;
|
||||
struct iommufd_access *iommufd_access;
|
||||
void (*put_kvm)(struct kvm *kvm);
|
||||
#if IS_ENABLED(CONFIG_IOMMUFD)
|
||||
@@ -284,12 +286,29 @@ int vfio_mig_get_next_state(struct vfio_device *device,
|
||||
/*
|
||||
* External user API
|
||||
*/
|
||||
#if IS_ENABLED(CONFIG_VFIO_GROUP)
|
||||
struct iommu_group *vfio_file_iommu_group(struct file *file);
|
||||
bool vfio_file_is_group(struct file *file);
|
||||
bool vfio_file_has_dev(struct file *file, struct vfio_device *device);
|
||||
#else
|
||||
static inline struct iommu_group *vfio_file_iommu_group(struct file *file)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline bool vfio_file_is_group(struct file *file)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool vfio_file_has_dev(struct file *file, struct vfio_device *device)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
bool vfio_file_is_valid(struct file *file);
|
||||
bool vfio_file_enforced_coherent(struct file *file);
|
||||
void vfio_file_set_kvm(struct file *file, struct kvm *kvm);
|
||||
bool vfio_file_has_dev(struct file *file, struct vfio_device *device);
|
||||
|
||||
#define VFIO_PIN_PAGES_MAX_ENTRIES (PAGE_SIZE/sizeof(unsigned long))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user