On Tue, Aug 5, 2025 at 10:29 PM Arun Menon <arme...@redhat.com> wrote:
> 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. > > Signed-off-by: Arun Menon <arme...@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > migration/colo.c | 4 ++-- > migration/savevm.c | 5 +++-- > migration/savevm.h | 2 +- > 3 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/migration/colo.c b/migration/colo.c > index > e0f713c837f5da25d67afbd02ceb6c54024ca3af..0ba22ee76a13e313793f653f43a728e3c433bbc1 > 100644 > --- a/migration/colo.c > +++ b/migration/colo.c > @@ -729,9 +729,9 @@ 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"); > + error_prepend(errp, "COLO: load device state failed: "); > vmstate_loading = false; > bql_unlock(); > return; > diff --git a/migration/savevm.c b/migration/savevm.c > index > ca166ebd397ad80836ed2f9cb20a92f704fd4ed5..f3b91c8ae0eee6078406081f0bd7f686fed28601 > 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -3253,15 +3253,16 @@ 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) > { > + ERRP_GUARD(); > MigrationIncomingState *mis = migration_incoming_get_current(); > int ret; > > /* 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 > b80770b7461a60e2ad6ba5e24a7baeae73d90955..b12681839f0b1afa3255e45215d99c13a224b19f > 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); > > -- > 2.50.1 > >