On 2/4/21 6:18 PM, Daniel P. Berrangé wrote: > This is an incremental step in converting vmstate loading code to report > via Error objects instead of printing directly to the console/monitor. > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > --- > migration/savevm.c | 87 ++++++++++++++++++++++++++++++++++------------ > 1 file changed, 64 insertions(+), 23 deletions(-) > > diff --git a/migration/savevm.c b/migration/savevm.c > index 350d5a315a..450c36994f 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -2223,34 +2223,37 @@ static int > loadvm_process_enable_colo(MigrationIncomingState *mis) > * Process an incoming 'QEMU_VM_COMMAND' > * 0 just a normal return > * LOADVM_QUIT All good, but exit the loop > - * <0 Error > + * -1 Error > */ > -static int loadvm_process_command(QEMUFile *f) > +static int loadvm_process_command(QEMUFile *f, Error **errp) > { > MigrationIncomingState *mis = migration_incoming_get_current(); > uint16_t cmd; > uint16_t len; > uint32_t tmp32; > + int ret; > > cmd = qemu_get_be16(f); > len = qemu_get_be16(f); > > /* Check validity before continue processing of cmds */ > if (qemu_file_get_error(f)) {
Eventually assign 'ret' and use it here > - return qemu_file_get_error(f); > + error_setg(errp, "device state stream has error: %d", > + qemu_file_get_error(f)); and here. > + return -1; > } > > trace_loadvm_process_command(cmd, len); > if (cmd >= MIG_CMD_MAX || cmd == MIG_CMD_INVALID) { > - error_report("MIG_CMD 0x%x unknown (len 0x%x)", cmd, len); > - return -EINVAL; > + error_setg(errp, "MIG_CMD 0x%x unknown (len 0x%x)", cmd, len); > + return -1; Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > }