From 74c38cf7fd24c60e4f0a90585d17250478260877 Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Tue, 25 Apr 2023 21:15:14 -0400 Subject: migration: Allow postcopy_ram_supported_by_host() to report err Instead of print it to STDERR, bring the error upwards so that it can be reported via QMP responses. E.g.: { "execute": "migrate-set-capabilities" , "arguments": { "capabilities": [ { "capability": "postcopy-ram", "state": true } ] } } { "error": { "class": "GenericError", "desc": "Postcopy is not supported: Host backend files need to be TMPFS or HUGETLBFS only" } } Signed-off-by: Peter Xu Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela --- migration/options.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'migration/options.c') diff --git a/migration/options.c b/migration/options.c index fe7d7754c4..c6030587cf 100644 --- a/migration/options.c +++ b/migration/options.c @@ -302,6 +302,7 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp) { MigrationIncomingState *mis = migration_incoming_get_current(); + ERRP_GUARD(); #ifndef CONFIG_LIVE_BLOCK_MIGRATION if (new_caps[MIGRATION_CAPABILITY_BLOCK]) { error_setg(errp, "QEMU compiled without old-style (blk/-b, inc/-i) " @@ -327,11 +328,8 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp) */ if (!old_caps[MIGRATION_CAPABILITY_POSTCOPY_RAM] && runstate_check(RUN_STATE_INMIGRATE) && - !postcopy_ram_supported_by_host(mis)) { - /* postcopy_ram_supported_by_host will have emitted a more - * detailed message - */ - error_setg(errp, "Postcopy is not supported"); + !postcopy_ram_supported_by_host(mis, errp)) { + error_prepend(errp, "Postcopy is not supported: "); return false; } -- cgit 1.4.1