diff options
| author | Arun Menon <armenon@redhat.com> | 2025-09-18 20:53:25 +0530 |
|---|---|---|
| committer | Peter Xu <peterx@redhat.com> | 2025-10-03 09:48:02 -0400 |
| commit | 84279d5dc1afb115c673007d65bae575da04e115 (patch) | |
| tree | 615a638a046106313be59b11f59d6a3f052c754f | |
| parent | 9535435795983caa31070b8b642539b5a658dc2f (diff) | |
| download | focaccia-qemu-84279d5dc1afb115c673007d65bae575da04e115.tar.gz focaccia-qemu-84279d5dc1afb115c673007d65bae575da04e115.zip | |
migration: push Error **errp into qemu_load_device_state()
This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that qemu_load_device_state() must report an error in errp, in case of failure. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Signed-off-by: Arun Menon <armenon@redhat.com> Tested-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Link: https://lore.kernel.org/r/20250918-propagate_tpm_error-v14-8-36f11a6fb9d3@redhat.com Signed-off-by: Peter Xu <peterx@redhat.com>
| -rw-r--r-- | migration/colo.c | 3 | ||||
| -rw-r--r-- | migration/savevm.c | 4 | ||||
| -rw-r--r-- | migration/savevm.h | 2 |
3 files changed, 4 insertions, 5 deletions
diff --git a/migration/colo.c b/migration/colo.c index cf4d71d9ed..a426ec5b60 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -729,9 +729,8 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis, bql_lock(); vmstate_loading = true; colo_flush_ram_cache(); - ret = qemu_load_device_state(fb); + ret = qemu_load_device_state(fb, errp); if (ret < 0) { - error_setg(errp, "COLO: load device state failed"); vmstate_loading = false; bql_unlock(); return; diff --git a/migration/savevm.c b/migration/savevm.c index 88116ed278..9e30718995 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3264,7 +3264,7 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp) return ret; } -int qemu_load_device_state(QEMUFile *f) +int qemu_load_device_state(QEMUFile *f, Error **errp) { MigrationIncomingState *mis = migration_incoming_get_current(); int ret; @@ -3272,7 +3272,7 @@ int qemu_load_device_state(QEMUFile *f) /* Load QEMU_VM_SECTION_FULL section */ ret = qemu_loadvm_state_main(f, mis); if (ret < 0) { - error_report("Failed to load device state: %d", ret); + error_setg(errp, "Failed to load device state: %d", ret); return ret; } diff --git a/migration/savevm.h b/migration/savevm.h index b80770b746..b12681839f 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -67,7 +67,7 @@ int qemu_save_device_state(QEMUFile *f); int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); -int qemu_load_device_state(QEMUFile *f); +int qemu_load_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_approve_switchover(void); int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, bool in_postcopy); |