qemu-arm.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Arun Menon <armenon@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Xu" <peterx@redhat.com>, "Fabiano Rosas" <farosas@suse.de>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Akihiko Odaki" <odaki@rsg.ci.i.u-tokyo.ac.jp>,
	"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Eric Farman" <farman@linux.ibm.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Matthew Rosato" <mjrosato@linux.ibm.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Fam Zheng" <fam@euphon.net>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Cédric Le Goater" <clg@redhat.com>,
	"Steve Sistare" <steven.sistare@oracle.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,
	"Hailiang Zhang" <zhanghailiang@xfusion.com>,
	"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Arun Menon" <armenon@redhat.com>
Subject: [PATCH v15 11/26] migration: push Error **errp into qemu_loadvm_section_part_end()
Date: Tue, 30 Sep 2025 09:48:20 +0530	[thread overview]
Message-ID: <20250930-propagate_tpm_error-v15-11-84afd3af1e47@redhat.com> (raw)
In-Reply-To: <20250930-propagate_tpm_error-v15-0-84afd3af1e47@redhat.com>

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_loadvm_section_part_end() must report an error
in errp, in case of failure.
This patch also removes the setting of errp when errp is NULL in the
out section as it is no longer required in the series.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Tested-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Signed-off-by: Arun Menon <armenon@redhat.com>
---
 migration/savevm.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/migration/savevm.c b/migration/savevm.c
index 83d8fb8f4144fd54fa7970eadc81444d38437659..c1ae36b50a5d602360a47e3818e82954f8694369 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2803,21 +2803,19 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t type, Error **errp)
 }
 
 static int
-qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
+qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type, Error **errp)
 {
     bool trace_downtime = (type == QEMU_VM_SECTION_END);
     int64_t start_ts, end_ts;
     uint32_t section_id;
     SaveStateEntry *se;
     int ret;
-    Error *local_err = NULL;
 
     section_id = qemu_get_be32(f);
 
     ret = qemu_file_get_error(f);
     if (ret) {
-        error_report("%s: Failed to read section ID: %d",
-                     __func__, ret);
+        error_setg(errp, "Failed to read section ID: %d", ret);
         return ret;
     }
 
@@ -2828,7 +2826,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
         }
     }
     if (se == NULL) {
-        error_report("Unknown savevm section %d", section_id);
+        error_setg(errp, "Unknown section %d", section_id);
         return -EINVAL;
     }
 
@@ -2836,9 +2834,8 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
         start_ts = qemu_clock_get_us(QEMU_CLOCK_REALTIME);
     }
 
-    ret = vmstate_load(f, se, &local_err);
+    ret = vmstate_load(f, se, errp);
     if (ret < 0) {
-        error_report_err(local_err);
         return ret;
     }
 
@@ -2849,6 +2846,8 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
     }
 
     if (!check_section_footer(f, se)) {
+        error_setg(errp, "Section footer error, section_id: %d",
+                   section_id);
         return -EINVAL;
     }
 
@@ -3108,7 +3107,7 @@ retry:
             break;
         case QEMU_VM_SECTION_PART:
         case QEMU_VM_SECTION_END:
-            ret = qemu_loadvm_section_part_end(f, section_type);
+            ret = qemu_loadvm_section_part_end(f, section_type, errp);
             if (ret < 0) {
                 goto out;
             }
@@ -3132,9 +3131,6 @@ retry:
 
 out:
     if (ret < 0) {
-        if (*errp == NULL) {
-            error_setg(errp, "Loading VM state failed: %d", ret);
-        }
         qemu_file_set_error(f, ret);
 
         /* Cancel bitmaps incoming regardless of recovery */

-- 
2.51.0



  parent reply	other threads:[~2025-09-30  4:21 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-30  4:18 [PATCH v15 00/26] migration: propagate vTPM errors using Error objects Arun Menon
2025-09-30  4:18 ` [PATCH v15 01/26] migration: push Error **errp into vmstate_subsection_load() Arun Menon
2025-09-30  4:18 ` [PATCH v15 02/26] migration: push Error **errp into vmstate_load_state() Arun Menon
2025-09-30  4:18 ` [PATCH v15 03/26] migration: push Error **errp into qemu_loadvm_state_header() Arun Menon
2025-09-30  4:18 ` [PATCH v15 04/26] migration: push Error **errp into vmstate_load() Arun Menon
2025-09-30  4:18 ` [PATCH v15 05/26] migration: push Error **errp into loadvm_process_command() Arun Menon
2025-09-30  4:18 ` [PATCH v15 06/26] migration: push Error **errp into loadvm_handle_cmd_packaged() Arun Menon
2025-09-30  4:18 ` [PATCH v15 07/26] migration: push Error **errp into qemu_loadvm_state() Arun Menon
2025-09-30  4:18 ` [PATCH v15 08/26] migration: push Error **errp into qemu_load_device_state() Arun Menon
2025-09-30  4:18 ` [PATCH v15 09/26] migration: push Error **errp into qemu_loadvm_state_main() Arun Menon
2025-09-30  4:18 ` [PATCH v15 10/26] migration: push Error **errp into qemu_loadvm_section_start_full() Arun Menon
2025-09-30  4:18 ` Arun Menon [this message]
2025-09-30  4:18 ` [PATCH v15 12/26] migration: Update qemu_file_get_return_path() docs and remove dead checks Arun Menon
2025-09-30  4:18 ` [PATCH v15 13/26] migration: make loadvm_postcopy_handle_resume() void Arun Menon
2025-09-30  4:18 ` [PATCH v15 14/26] migration: push Error **errp into ram_postcopy_incoming_init() Arun Menon
2025-09-30  4:18 ` [PATCH v15 15/26] migration: push Error **errp into loadvm_postcopy_handle_advise() Arun Menon
2025-09-30  4:18 ` [PATCH v15 16/26] migration: push Error **errp into loadvm_postcopy_handle_listen() Arun Menon
2025-09-30  4:18 ` [PATCH v15 17/26] migration: push Error **errp into loadvm_postcopy_handle_run() Arun Menon
2025-09-30  4:18 ` [PATCH v15 18/26] migration: push Error **errp into loadvm_postcopy_ram_handle_discard() Arun Menon
2025-09-30  4:18 ` [PATCH v15 19/26] migration: push Error **errp into loadvm_handle_recv_bitmap() Arun Menon
2025-09-30  4:18 ` [PATCH v15 20/26] migration: Return -1 on memory allocation failure in ram.c Arun Menon
2025-09-30  4:18 ` [PATCH v15 21/26] migration: push Error **errp into loadvm_process_enable_colo() Arun Menon
2025-09-30  4:18 ` [PATCH v15 22/26] migration: push Error **errp into loadvm_postcopy_handle_switchover_start() Arun Menon
2025-09-30  4:18 ` [PATCH v15 23/26] migration: Capture error in postcopy_ram_listen_thread() Arun Menon
2025-09-30  4:18 ` [PATCH v15 24/26] migration: Remove error variant of vmstate_save_state() function Arun Menon
2025-09-30  4:18 ` [PATCH v15 25/26] migration: Add error-parameterized function variants in VMSD struct Arun Menon
2025-09-30  4:18 ` [PATCH v15 26/26] backends/tpm: Propagate vTPM error on migration failure Arun Menon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250930-propagate_tpm_error-v15-11-84afd3af1e47@redhat.com \
    --to=armenon@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=alex.williamson@redhat.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=clg@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=dmitry.osipenko@collabora.com \
    --cc=fam@euphon.net \
    --cc=farman@linux.ibm.com \
    --cc=farosas@suse.de \
    --cc=harshpb@linux.ibm.com \
    --cc=iii@linux.ibm.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=mst@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=odaki@rsg.ci.i.u-tokyo.ac.jp \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=steven.sistare@oracle.com \
    --cc=thuth@redhat.com \
    --cc=zhanghailiang@xfusion.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).