64 lines
2.2 KiB
Diff
64 lines
2.2 KiB
Diff
|
|
From cb2bd16a67cd45a0ad3318098120aee10a298f3b Mon Sep 17 00:00:00 2001
|
||
|
|
From: Zhenzhong Duan <zhenzhong.duan@intel.com>
|
||
|
|
Date: Sat, 11 Jan 2025 10:52:41 +0800
|
||
|
|
Subject: [PATCH] vfio/iommufd: Relax assert check for iommufd backend
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
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>
|
||
|
|
Signed-off-by: Zhou Wang <wangzhou1@hisilicon.com>
|
||
|
|
---
|
||
|
|
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 62af0f2bdd..4936b8f27f 100644
|
||
|
|
--- a/hw/vfio/container.c
|
||
|
|
+++ b/hw/vfio/container.c
|
||
|
|
@@ -266,10 +266,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 {
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|