vfio/container: Introduce vfio_address_space_insert()
It prepares ground for a future change initializing the 'space' pointer of VFIOContainerBase. The goal is to replace vfio_container_init() by an .instance_init() handler when VFIOContainerBase is QOMified. Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Tested-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
723f702b89
commit
b7b79588eb
@ -1508,6 +1508,12 @@ void vfio_put_address_space(VFIOAddressSpace *space)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vfio_address_space_insert(VFIOAddressSpace *space,
|
||||||
|
VFIOContainerBase *bcontainer)
|
||||||
|
{
|
||||||
|
QLIST_INSERT_HEAD(&space->containers, bcontainer, next);
|
||||||
|
}
|
||||||
|
|
||||||
struct vfio_device_info *vfio_get_device_info(int fd)
|
struct vfio_device_info *vfio_get_device_info(int fd)
|
||||||
{
|
{
|
||||||
struct vfio_device_info *info;
|
struct vfio_device_info *info;
|
||||||
|
@ -637,7 +637,7 @@ static bool vfio_connect_container(VFIOGroup *group, AddressSpace *as,
|
|||||||
vfio_kvm_device_add_group(group);
|
vfio_kvm_device_add_group(group);
|
||||||
|
|
||||||
QLIST_INIT(&container->group_list);
|
QLIST_INIT(&container->group_list);
|
||||||
QLIST_INSERT_HEAD(&space->containers, bcontainer, next);
|
vfio_address_space_insert(space, bcontainer);
|
||||||
|
|
||||||
group->container = container;
|
group->container = container;
|
||||||
QLIST_INSERT_HEAD(&container->group_list, group, container_next);
|
QLIST_INSERT_HEAD(&container->group_list, group, container_next);
|
||||||
|
@ -358,7 +358,7 @@ static bool iommufd_cdev_attach(const char *name, VFIODevice *vbasedev,
|
|||||||
|
|
||||||
bcontainer = &container->bcontainer;
|
bcontainer = &container->bcontainer;
|
||||||
vfio_container_init(bcontainer, space, iommufd_vioc);
|
vfio_container_init(bcontainer, space, iommufd_vioc);
|
||||||
QLIST_INSERT_HEAD(&space->containers, bcontainer, next);
|
vfio_address_space_insert(space, bcontainer);
|
||||||
|
|
||||||
if (!iommufd_cdev_attach_container(vbasedev, container, errp)) {
|
if (!iommufd_cdev_attach_container(vbasedev, container, errp)) {
|
||||||
goto err_attach_container;
|
goto err_attach_container;
|
||||||
|
@ -206,6 +206,8 @@ typedef struct VFIODisplay {
|
|||||||
|
|
||||||
VFIOAddressSpace *vfio_get_address_space(AddressSpace *as);
|
VFIOAddressSpace *vfio_get_address_space(AddressSpace *as);
|
||||||
void vfio_put_address_space(VFIOAddressSpace *space);
|
void vfio_put_address_space(VFIOAddressSpace *space);
|
||||||
|
void vfio_address_space_insert(VFIOAddressSpace *space,
|
||||||
|
VFIOContainerBase *bcontainer);
|
||||||
|
|
||||||
void vfio_disable_irqindex(VFIODevice *vbasedev, int index);
|
void vfio_disable_irqindex(VFIODevice *vbasedev, int index);
|
||||||
void vfio_unmask_single_irqindex(VFIODevice *vbasedev, int index);
|
void vfio_unmask_single_irqindex(VFIODevice *vbasedev, int index);
|
||||||
|
Loading…
Reference in New Issue
Block a user