From: Philippe Mathieu-Daudé Date: Tue, 21 Oct 2025 16:17:07 +0000 (+0200) Subject: hw/vfio/migration: Check base architecture at runtime X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78e630fcc497ee473821cb91b1dd87908d70fd82;p=thirdparty%2Fqemu.git hw/vfio/migration: Check base architecture at runtime 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(). Signed-off-by: Philippe Mathieu-Daudé Acked-by: Maciej S. Szmigiero Link: https://lore.kernel.org/qemu-devel/20251021161707.8324-1-philmd@linaro.org Signed-off-by: Cédric Le Goater --- diff --git a/hw/vfio/helpers.c b/hw/vfio/helpers.c index c595f860ce..f68f8165d0 100644 --- a/hw/vfio/helpers.c +++ b/hw/vfio/helpers.c @@ -210,20 +210,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 4a855f4e12..a06cbf3c64 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 */ diff --git a/hw/vfio/vfio-helpers.h b/hw/vfio/vfio-helpers.h index ce31758080..54a327ffbc 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 */