On 11/9/23 12:45, Zhenzhong Duan wrote:
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 <c...@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com>

Reviewed-by: Cédric Le Goater <c...@redhat.com>

Thanks,

C.


---
  hw/vfio/container-base.c | 4 ++++
  hw/vfio/container.c      | 4 ----
  2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/vfio/container-base.c b/hw/vfio/container-base.c
index 71f7274973..eee2dcfe76 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 6bacf38222..ed2d721b2b 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 {


Reply via email to