So that it doesn't need to be moved into container.c as done in following patch.
Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com> --- hw/vfio/common.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/vfio/common.c b/hw/vfio/common.c index f7e4dc0cef..a1fb0dafda 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -215,7 +215,22 @@ void vfio_unblock_multiple_devices_migration(void) bool vfio_viommu_preset(VFIODevice *vbasedev) { - return vbasedev->group->container->space->as != &address_space_memory; + VFIOAddressSpace *space; + VFIOContainer *container; + VFIODevice *tmp_vbasedev; + + QLIST_FOREACH(space, &vfio_address_spaces, list) { + QLIST_FOREACH(container, &space->containers, next) { + tmp_vbasedev = NULL; + while ((vbasedev = vfio_container_dev_iter_next(container, + vbasedev))) { + if (vbasedev == tmp_vbasedev) { + return space->as != &address_space_memory; + } + } + } + } + g_assert_not_reached(); } static void vfio_set_migration_error(int err) -- 2.34.1