aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Sistare <steven.sistare@oracle.com>2024-03-11 10:48:54 -0700
committerPeter Xu <peterx@redhat.com>2024-03-11 16:28:59 -0400
commit9bb630c6ee6e930e1c521829681365e5672bbd99 (patch)
tree79a0f633ad8803ded84a6e4267e8f019c293316b
parent6e7856397641326163ef493197a849f99a9a6a44 (diff)
downloadqemu-9bb630c6ee6e930e1c521829681365e5672bbd99.zip
qemu-9bb630c6ee6e930e1c521829681365e5672bbd99.tar.gz
qemu-9bb630c6ee6e930e1c521829681365e5672bbd99.tar.bz2
migration: migration_is_device
Define and export migration_is_device to eliminate a dependency on MigrationState. Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Link: https://lore.kernel.org/r/1710179338-294359-8-git-send-email-steven.sistare@oracle.com Signed-off-by: Peter Xu <peterx@redhat.com>
-rw-r--r--hw/vfio/common.c4
-rw-r--r--include/migration/misc.h1
-rw-r--r--migration/migration.c7
3 files changed, 9 insertions, 3 deletions
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 2dbbf62..de01068 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -180,10 +180,8 @@ bool vfio_device_state_is_precopy(VFIODevice *vbasedev)
static bool vfio_devices_all_dirty_tracking(VFIOContainerBase *bcontainer)
{
VFIODevice *vbasedev;
- MigrationState *ms = migrate_get_current();
- if (!migration_is_active() &&
- ms->state != MIGRATION_STATUS_DEVICE) {
+ if (!migration_is_active() && !migration_is_device()) {
return false;
}
diff --git a/include/migration/misc.h b/include/migration/misc.h
index c4b5416..28cfaed 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -61,6 +61,7 @@ void migration_object_init(void);
void migration_shutdown(void);
bool migration_is_idle(void);
bool migration_is_active(void);
+bool migration_is_device(void);
bool migration_thread_is_self(void);
bool migration_is_setup_or_active(void);
bool migrate_mode_is_cpr(MigrationState *);
diff --git a/migration/migration.c b/migration/migration.c
index afe72af..db1e627 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1647,6 +1647,13 @@ bool migration_is_active(void)
s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE);
}
+bool migration_is_device(void)
+{
+ MigrationState *s = current_migration;
+
+ return s->state == MIGRATION_STATUS_DEVICE;
+}
+
bool migration_thread_is_self(void)
{
MigrationState *s = current_migration;