On 10/21/25 18:17, Philippe Mathieu-Daudé wrote:
Inline vfio_arch_wants_loading_config_after_iter() and
replace the compile time check of the TARGET_ARM definition
by a runtime call to target_base_arm().
What's the value of a runtime check of target ARM ? Please explain.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
Supersedes: <[email protected]>
Based-on: <[email protected]>
OK. Will consider when this is merged.
Thanks,
C.
https://lore.kernel.org/qemu-devel/[email protected]/
---
hw/vfio/vfio-helpers.h | 2 --
hw/vfio/helpers.c | 17 -----------------
hw/vfio/migration-multifd.c | 12 +++++++++++-
3 files changed, 11 insertions(+), 20 deletions(-)
diff --git a/hw/vfio/vfio-helpers.h b/hw/vfio/vfio-helpers.h
index ce317580800..54a327ffbc0 100644
--- a/hw/vfio/vfio-helpers.h
+++ b/hw/vfio/vfio-helpers.h
@@ -32,6 +32,4 @@ struct vfio_device_info *vfio_get_device_info(int fd);
int vfio_kvm_device_add_fd(int fd, Error **errp);
int vfio_kvm_device_del_fd(int fd, Error **errp);
-bool vfio_arch_wants_loading_config_after_iter(void);
-
#endif /* HW_VFIO_VFIO_HELPERS_H */
diff --git a/hw/vfio/helpers.c b/hw/vfio/helpers.c
index 23d13e5db5f..9a5f6215455 100644
--- a/hw/vfio/helpers.c
+++ b/hw/vfio/helpers.c
@@ -209,20 +209,3 @@ retry:
return info;
}
-
-bool vfio_arch_wants_loading_config_after_iter(void)
-{
- /*
- * Starting the config load only after all iterables were loaded (during
- * non-iterables loading phase) is required for ARM64 due to this platform
- * VFIO dependency on interrupt controller being loaded first.
- *
- * See commit d329f5032e17 ("vfio: Move the saving of the config space to
- * the right place in VFIO migration").
- */
-#if defined(TARGET_ARM)
- return true;
-#else
- return false;
-#endif
-}
diff --git a/hw/vfio/migration-multifd.c b/hw/vfio/migration-multifd.c
index e4785031a73..b0eea0de678 100644
--- a/hw/vfio/migration-multifd.c
+++ b/hw/vfio/migration-multifd.c
@@ -16,6 +16,7 @@
#include "qemu/error-report.h"
#include "qemu/lockable.h"
#include "qemu/main-loop.h"
+#include "qemu/target-info.h"
#include "qemu/thread.h"
#include "io/channel-buffer.h"
#include "migration/qemu-file.h"
@@ -44,7 +45,16 @@ bool vfio_load_config_after_iter(VFIODevice *vbasedev)
}
assert(vbasedev->migration_load_config_after_iter == ON_OFF_AUTO_AUTO);
- return vfio_arch_wants_loading_config_after_iter();
+
+ /*
+ * Starting the config load only after all iterables were loaded (during
+ * non-iterables loading phase) is required for ARM64 due to this platform
+ * VFIO dependency on interrupt controller being loaded first.
+ *
+ * See commit d329f5032e17 ("vfio: Move the saving of the config space to
+ * the right place in VFIO migration").
+ */
+ return target_base_arm();
}
/* type safety */