aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorZhenzhong Duan <zhenzhong.duan@intel.com>2023-11-21 16:44:04 +0800
committerCédric Le Goater <clg@redhat.com>2023-12-19 19:03:38 +0100
commit36e84d0c17102fa1c887d8c650a13ec08fca0ec0 (patch)
tree95cf6a4252324f905d89b912c2a16c1209d1c187 /hw
parent5ee3dc7af7859e7b8aa34c10c21778101c15e812 (diff)
downloadqemu-36e84d0c17102fa1c887d8c650a13ec08fca0ec0.zip
qemu-36e84d0c17102fa1c887d8c650a13ec08fca0ec0.tar.gz
qemu-36e84d0c17102fa1c887d8c650a13ec08fca0ec0.tar.bz2
vfio/iommufd: Relax assert check for iommufd backend
Currently iommufd doesn't support dirty page sync yet, but it will not block us doing live migration if VFIO migration is force enabled. So in this case we allow set_dirty_page_tracking to be NULL. Note we don't need same change for query_dirty_bitmap because when dirty page sync isn't supported, query_dirty_bitmap will never be called. Suggested-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Tested-by: Eric Auger <eric.auger@redhat.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/vfio/container-base.c4
-rw-r--r--hw/vfio/container.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/hw/vfio/container-base.c b/hw/vfio/container-base.c
index 71f7274..eee2dcf 100644
--- a/hw/vfio/container-base.c
+++ b/hw/vfio/container-base.c
@@ -55,6 +55,10 @@ void vfio_container_del_section_window(VFIOContainerBase *bcontainer,
int vfio_container_set_dirty_page_tracking(VFIOContainerBase *bcontainer,
bool start)
{
+ if (!bcontainer->dirty_pages_supported) {
+ return 0;
+ }
+
g_assert(bcontainer->ops->set_dirty_page_tracking);
return bcontainer->ops->set_dirty_page_tracking(bcontainer, start);
}
diff --git a/hw/vfio/container.c b/hw/vfio/container.c
index 6bacf38..ed2d721 100644
--- a/hw/vfio/container.c
+++ b/hw/vfio/container.c
@@ -216,10 +216,6 @@ static int vfio_legacy_set_dirty_page_tracking(VFIOContainerBase *bcontainer,
.argsz = sizeof(dirty),
};
- if (!bcontainer->dirty_pages_supported) {
- return 0;
- }
-
if (start) {
dirty.flags = VFIO_IOMMU_DIRTY_PAGES_FLAG_START;
} else {