diff options
author | Steve Sistare <steven.sistare@oracle.com> | 2023-10-18 06:03:36 -0700 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-10-20 08:51:41 +0200 |
commit | c8a7fc5179c649eed1d4286776a23e8a1a183cdc (patch) | |
tree | c5fb90795cb604c07815f6c4321e33ab93706cd3 /target/i386/nvmm/nvmm-all.c | |
parent | 04131e00097c5b85f96af6a66b1c009446c90ec1 (diff) |
migration: simplify blockers
Modify migrate_add_blocker and migrate_del_blocker to take an Error **
reason. This allows migration to own the Error object, so that if
an error occurs in migrate_add_blocker, migration code can free the Error
and clear the client handle, simplifying client code. It also simplifies
the migrate_del_blocker call site.
In addition, this is a pre-requisite for a proposed future patch that would
add a mode argument to migration requests to support live update, and
maintain a list of blockers for each mode. A blocker may apply to a single
mode or to multiple modes, and passing Error** will allow one Error object
to be registered for multiple modes.
No functional change.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Tested-by: Michael Galaxy <mgalaxy@akamai.com>
Reviewed-by: Michael Galaxy <mgalaxy@akamai.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <1697634216-84215-1-git-send-email-steven.sistare@oracle.com>
Diffstat (limited to 'target/i386/nvmm/nvmm-all.c')
-rw-r--r-- | target/i386/nvmm/nvmm-all.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c index fb769868f2..7d752bc5e0 100644 --- a/target/i386/nvmm/nvmm-all.c +++ b/target/i386/nvmm/nvmm-all.c @@ -929,9 +929,8 @@ nvmm_init_vcpu(CPUState *cpu) error_setg(&nvmm_migration_blocker, "NVMM: Migration not supported"); - if (migrate_add_blocker(nvmm_migration_blocker, &local_error) < 0) { + if (migrate_add_blocker(&nvmm_migration_blocker, &local_error) < 0) { error_report_err(local_error); - error_free(nvmm_migration_blocker); return -EINVAL; } } |