qemu-devel.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 v13 11/27] migration: push Error **errp into qemu_loadvm_section_part_end()
Date: Sat, 30 Aug 2025 01:31:51 +0530	[thread overview]
Message-ID: <20250830-propagate_tpm_error-v13-11-a4e777b7eb2c@redhat.com> (raw)
In-Reply-To: <20250830-propagate_tpm_error-v13-0-a4e777b7eb2c@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>
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 01e1a9739aa784d90f80bf2b561fd62f5e4678f8..c8234f2ef7f413b207aebae7192c82f1f4d6d91d 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-08-30 16:15 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-29 20:01 [PATCH v13 00/27] migration: propagate vTPM errors using Error objects Arun Menon
2025-08-29 20:01 ` [PATCH v13 01/27] migration: push Error **errp into vmstate_subsection_load() Arun Menon
2025-08-29 20:01 ` [PATCH v13 02/27] migration: push Error **errp into vmstate_load_state() Arun Menon
2025-08-29 20:01 ` [PATCH v13 03/27] migration: push Error **errp into qemu_loadvm_state_header() Arun Menon
2025-08-29 20:01 ` [PATCH v13 04/27] migration: push Error **errp into vmstate_load() Arun Menon
2025-08-29 20:01 ` [PATCH v13 05/27] migration: push Error **errp into loadvm_process_command() Arun Menon
2025-08-29 20:01 ` [PATCH v13 06/27] migration: push Error **errp into loadvm_handle_cmd_packaged() Arun Menon
2025-08-29 20:01 ` [PATCH v13 07/27] migration: push Error **errp into qemu_loadvm_state() Arun Menon
2025-08-30  5:58   ` Akihiko Odaki
2025-08-31 15:45     ` Arun Menon
2025-08-31 16:04       ` Akihiko Odaki
2025-08-31 16:38         ` Arun Menon
2025-08-31 17:12           ` Akihiko Odaki
2025-09-03  6:47             ` Arun Menon
2025-09-06  3:22               ` Akihiko Odaki
2025-09-17  0:34                 ` Arun Menon
2025-09-17  7:54                   ` Akihiko Odaki
2025-09-17 14:27                     ` Arun Menon
2025-09-18  2:06                       ` Akihiko Odaki
2025-09-18  6:28                         ` Arun Menon
2025-09-18 12:08                           ` Akihiko Odaki
2025-09-18 12:48                             ` Arun Menon
2025-09-18 12:51                               ` Akihiko Odaki
2025-08-29 20:01 ` [PATCH v13 08/27] migration: push Error **errp into qemu_load_device_state() Arun Menon
2025-08-29 20:01 ` [PATCH v13 09/27] migration: push Error **errp into qemu_loadvm_state_main() Arun Menon
2025-08-29 20:01 ` [PATCH v13 10/27] migration: push Error **errp into qemu_loadvm_section_start_full() Arun Menon
2025-08-29 20:01 ` Arun Menon [this message]
2025-08-29 20:01 ` [PATCH v13 12/27] migration: Update qemu_file_get_return_path() docs and remove dead checks Arun Menon
2025-08-29 20:01 ` [PATCH v13 13/27] migration: make loadvm_postcopy_handle_resume() void Arun Menon
2025-08-29 20:01 ` [PATCH v13 14/27] migration: push Error **errp into ram_postcopy_incoming_init() Arun Menon
2025-08-29 20:01 ` [PATCH v13 15/27] migration: push Error **errp into loadvm_postcopy_handle_advise() Arun Menon
2025-08-29 20:01 ` [PATCH v13 16/27] migration: push Error **errp into loadvm_postcopy_handle_listen() Arun Menon
2025-08-29 20:01 ` [PATCH v13 17/27] migration: push Error **errp into loadvm_postcopy_handle_run() Arun Menon
2025-08-29 20:01 ` [PATCH v13 18/27] migration: push Error **errp into loadvm_postcopy_ram_handle_discard() Arun Menon
2025-08-29 20:01 ` [PATCH v13 19/27] migration: push Error **errp into loadvm_handle_recv_bitmap() Arun Menon
2025-08-29 20:02 ` [PATCH v13 20/27] migration: Return -1 on memory allocation failure in ram.c Arun Menon
2025-08-29 20:02 ` [PATCH v13 21/27] migration: push Error **errp into loadvm_process_enable_colo() Arun Menon
2025-08-29 20:02 ` [PATCH v13 22/27] migration: push Error **errp into loadvm_postcopy_handle_switchover_start() Arun Menon
2025-08-29 20:02 ` [PATCH v13 23/27] migration: Capture error in postcopy_ram_listen_thread() Arun Menon
2025-08-29 20:02 ` [PATCH v13 24/27] migration: Remove error variant of vmstate_save_state() function Arun Menon
2025-08-29 20:02 ` [PATCH v13 25/27] migration: Rename post_save() to cleanup_save() and make it void Arun Menon
2025-08-29 20:02 ` [PATCH v13 26/27] migration: Add error-parameterized function variants in VMSD struct Arun Menon
2025-08-29 20:02 ` [PATCH v13 27/27] backends/tpm: Propagate vTPM error on migration failure Arun Menon
2025-09-17  1:05 ` [PATCH v13 00/27] migration: propagate vTPM errors using Error objects 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=20250830-propagate_tpm_error-v13-11-a4e777b7eb2c@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).