From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694059; cv=none; d=zohomail.com; s=zohoarc; b=dVpO9D/VyWEw5MT0T/FUDbpLiE+bIVY2dyMmC60UEh0IqKED8MsKTBhU5zUI4ypWIpahs1rKEpENSlPGONPKMU7HAseONeacFwltOTBjFFBqcq4ZzqZSZB9Zo6xJVp4EAq19lUt3jjvLshvafs0AugzlLtrft5iio09wauHUKjg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694059; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8G20p+W2Adz7jxrPL+OIkEO5r+t8H0Lgux1UNKC7w5o=; b=PAcGTGfgKmu3rWl03RioVACj27sV630P5QuY4USbG5asd2vOjqhf92he6ePlUq/sIk5+dlWZZ27kceR+hw8NJDU2UH1aeTNoNWB/so9QR7bAGYQHZYoHAFx2mIIg2jV7nQauxxQyP56tyP0LyJhTe7IqivTEnMCdRR319NELXgw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694059832291.7854340031778; Tue, 25 Aug 2026 14:40:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqv-0005l5-1e; Tue, 25 Aug 2026 17:38:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqs-0005jb-VE for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:38 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqp-0004zE-IA for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:38 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 9D7D2807E9; Wed, 26 Aug 2026 00:38:30 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-4KqgaEA0; Wed, 26 Aug 2026 00:38:29 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693909; bh=8G20p+W2Adz7jxrPL+OIkEO5r+t8H0Lgux1UNKC7w5o=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=unBvowX0GXQAXzL+MOsLZRPCRhdwW7wsY3aDKr5f3NosSd4eFKWABnqQ6j+MX6+KB qzb6/aaCfBZXcfg/Qo+8P4LxNZg66LqWBbMwsZcCmMSG/KvdoAQjDrjfJK0MvDZ6F3 eJIrtizaP0dcUDki54VdznKmX1lfdugWVcJmTPAQ= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Juraj Marcin , Alexander Mikhalitsyn , Akihiko Odaki Subject: [PATCH 01/30] tests/unit/test-vmstate: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:41 +0300 Message-ID: <20260825213811.3725682-2-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694061343158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Akihiko Odaki Reviewed-by: Fabiano Rosas --- tests/unit/test-vmstate.c | 118 ++++++++++---------------------------- 1 file changed, 30 insertions(+), 88 deletions(-) diff --git a/tests/unit/test-vmstate.c b/tests/unit/test-vmstate.c index df1fb4c7780..23f31730703 100644 --- a/tests/unit/test-vmstate.c +++ b/tests/unit/test-vmstate.c @@ -67,14 +67,9 @@ static QEMUFile *open_test_file(bool write) static void save_vmstate(const VMStateDescription *desc, void *obj) { QEMUFile *f =3D open_test_file(true); - Error *local_err =3D NULL; =20 /* Save file with vmstate */ - int ret =3D vmstate_save_state(f, desc, obj, NULL, &local_err); - if (ret) { - error_report_err(local_err); - } - g_assert(!ret); + vmstate_save_vmsd(f, desc, obj, NULL, &error_abort); qemu_put_byte(f, QEMU_VM_EOF); g_assert(!qemu_file_get_error(f)); qemu_fclose(f); @@ -112,7 +107,6 @@ static int load_vmstate_one(const VMStateDescription *d= esc, void *obj, int version, const uint8_t *wire, size_t size) { QEMUFile *f; - int ret; Error *local_err =3D NULL; =20 f =3D open_test_file(true); @@ -120,15 +114,16 @@ static int load_vmstate_one(const VMStateDescription = *desc, void *obj, qemu_fclose(f); =20 f =3D open_test_file(false); - ret =3D vmstate_load_state(f, desc, obj, version, &local_err); - if (ret) { + if (!vmstate_load_vmsd(f, desc, obj, version, &local_err)) { error_report_err(local_err); g_assert(qemu_file_get_error(f)); - } else{ - g_assert(!qemu_file_get_error(f)); + qemu_fclose(f); + return -EINVAL; } + + g_assert(!qemu_file_get_error(f)); qemu_fclose(f); - return ret; + return 0; } =20 =20 @@ -362,8 +357,6 @@ static const VMStateDescription vmstate_versioned =3D { =20 static void test_load_v1(void) { - Error *local_err =3D NULL; - int ret; uint8_t buf[] =3D { 0, 0, 0, 10, /* a */ 0, 0, 0, 30, /* c */ @@ -374,10 +367,7 @@ static void test_load_v1(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .b =3D 200, .e =3D 500, .f =3D 600 }; - ret =3D vmstate_load_state(loading, &vmstate_versioned, &obj, 1, &loca= l_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(loading, &vmstate_versioned, &obj, 1, &error_abort); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 200); @@ -390,8 +380,6 @@ static void test_load_v1(void) =20 static void test_load_v2(void) { - Error *local_err =3D NULL; - int ret; uint8_t buf[] =3D { 0, 0, 0, 10, /* a */ 0, 0, 0, 20, /* b */ @@ -405,10 +393,7 @@ static void test_load_v2(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj; - ret =3D vmstate_load_state(loading, &vmstate_versioned, &obj, 2, &loca= l_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(loading, &vmstate_versioned, &obj, 2, &error_abort); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); g_assert_cmpint(obj.c, =3D=3D, 30); @@ -442,16 +427,10 @@ static const VMStateDescription vmstate_skipping =3D { =20 static void test_save_noskip(void) { - Error *local_err =3D NULL; QEMUFile *fsave =3D open_test_file(true); TestStruct obj =3D { .a =3D 1, .b =3D 2, .c =3D 3, .d =3D 4, .e =3D 5,= .f =3D 6, .skip_c_e =3D false }; - int ret =3D vmstate_save_state(fsave, &vmstate_skipping, &obj, NULL, - &local_err); - if (ret) { - error_report_err(local_err); - } - g_assert(!ret); + vmstate_save_vmsd(fsave, &vmstate_skipping, &obj, NULL, &error_abort); g_assert(!qemu_file_get_error(fsave)); =20 uint8_t expected[] =3D { @@ -469,16 +448,10 @@ static void test_save_noskip(void) =20 static void test_save_skip(void) { - Error *local_err =3D NULL; QEMUFile *fsave =3D open_test_file(true); TestStruct obj =3D { .a =3D 1, .b =3D 2, .c =3D 3, .d =3D 4, .e =3D 5,= .f =3D 6, .skip_c_e =3D true }; - int ret =3D vmstate_save_state(fsave, &vmstate_skipping, &obj, NULL, - &local_err); - if (ret) { - error_report_err(local_err); - } - g_assert(!ret); + vmstate_save_vmsd(fsave, &vmstate_skipping, &obj, NULL, &error_abort); g_assert(!qemu_file_get_error(fsave)); =20 uint8_t expected[] =3D { @@ -494,8 +467,6 @@ static void test_save_skip(void) =20 static void test_load_noskip(void) { - Error *local_err =3D NULL; - int ret; uint8_t buf[] =3D { 0, 0, 0, 10, /* a */ 0, 0, 0, 20, /* b */ @@ -509,10 +480,7 @@ static void test_load_noskip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D false }; - ret =3D vmstate_load_state(loading, &vmstate_skipping, &obj, 2, &local= _err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(loading, &vmstate_skipping, &obj, 2, &error_abort); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -525,8 +493,6 @@ static void test_load_noskip(void) =20 static void test_load_skip(void) { - Error *local_err =3D NULL; - int ret; uint8_t buf[] =3D { 0, 0, 0, 10, /* a */ 0, 0, 0, 20, /* b */ @@ -538,10 +504,7 @@ static void test_load_skip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D true, .c =3D 300, .e =3D 500 }; - ret =3D vmstate_load_state(loading, &vmstate_skipping, &obj, 2, &local= _err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(loading, &vmstate_skipping, &obj, 2, &error_abort); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -863,8 +826,6 @@ static void test_save_q(void) =20 static void test_load_q(void) { - int ret; - Error *local_err =3D NULL; TestQtailq obj_q =3D { .i16 =3D -512, .i32 =3D 70000, @@ -894,10 +855,7 @@ static void test_load_q(void) TestQtailq tgt; =20 QTAILQ_INIT(&tgt.q); - ret =3D vmstate_load_state(fload, &vmstate_q, &tgt, 1, &local_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(fload, &vmstate_q, &tgt, 1, &error_abort); char eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(tgt.i16, =3D=3D, obj_q.i16); @@ -1015,29 +973,29 @@ static void destroy_domain(gpointer data) g_free(domain); } =20 -static int domain_preload(void *opaque) +static bool domain_preload(void *opaque, Error **errp) { TestGTreeDomain *domain =3D opaque; =20 domain->mappings =3D g_tree_new_full((GCompareDataFunc)interval_cmp, NULL, g_free, g_free); - return 0; + return true; } =20 -static int iommu_preload(void *opaque) +static bool iommu_preload(void *opaque, Error **errp) { TestGTreeIOMMU *iommu =3D opaque; =20 iommu->domains =3D g_tree_new_full((GCompareDataFunc)int_cmp, NULL, NULL, destroy_domain); - return 0; + return true; } =20 static const VMStateDescription vmstate_domain =3D { .name =3D "domain", .version_id =3D 1, .minimum_version_id =3D 1, - .pre_load =3D domain_preload, + .pre_load_errp =3D domain_preload, .fields =3D (const VMStateField[]) { VMSTATE_INT32(id, TestGTreeDomain), VMSTATE_GTREE_V(mappings, TestGTreeDomain, 1, @@ -1073,7 +1031,7 @@ static const VMStateDescription vmstate_iommu =3D { .name =3D "iommu", .version_id =3D 1, .minimum_version_id =3D 1, - .pre_load =3D iommu_preload, + .pre_load_errp =3D iommu_preload, .fields =3D (const VMStateField[]) { VMSTATE_INT32(id, TestGTreeIOMMU), VMSTATE_GTREE_DIRECT_KEY_V(domains, TestGTreeIOMMU, 1, @@ -1239,8 +1197,6 @@ static void diff_iommu(TestGTreeIOMMU *iommu1, TestGT= reeIOMMU *iommu2) =20 static void test_gtree_load_domain(void) { - Error *local_err =3D NULL; - int ret; TestGTreeDomain *dest_domain =3D g_new0(TestGTreeDomain, 1); TestGTreeDomain *orig_domain =3D create_first_domain(); QEMUFile *fload, *fsave; @@ -1253,11 +1209,7 @@ static void test_gtree_load_domain(void) =20 fload =3D open_test_file(false); =20 - ret =3D vmstate_load_state(fload, &vmstate_domain, dest_domain, 1, - &local_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(fload, &vmstate_domain, dest_domain, 1, &error_abort= ); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_domain->id, =3D=3D, dest_domain->id); @@ -1360,8 +1312,6 @@ static void test_gtree_save_iommu(void) =20 static void test_gtree_load_iommu(void) { - Error *local_err =3D NULL; - int ret; TestGTreeIOMMU *dest_iommu =3D g_new0(TestGTreeIOMMU, 1); TestGTreeIOMMU *orig_iommu =3D create_iommu(); QEMUFile *fsave, *fload; @@ -1373,10 +1323,7 @@ static void test_gtree_load_iommu(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - ret =3D vmstate_load_state(fload, &vmstate_iommu, dest_iommu, 1, &loca= l_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(fload, &vmstate_iommu, dest_iommu, 1, &error_abort); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_iommu->id, =3D=3D, dest_iommu->id); @@ -1498,8 +1445,6 @@ static void test_save_qlist(void) =20 static void test_load_qlist(void) { - Error *local_err =3D NULL; - int ret; QEMUFile *fsave, *fload; TestQListContainer *orig_container =3D alloc_container(); TestQListContainer *dest_container =3D g_new0(TestQListContainer, 1); @@ -1513,11 +1458,8 @@ static void test_load_qlist(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - ret =3D vmstate_load_state(fload, &vmstate_container, dest_container, = 1, - &local_err); - if (ret < 0) { - error_report_err(local_err); - } + vmstate_load_vmsd(fload, &vmstate_container, dest_container, 1, + &error_abort); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(eof, =3D=3D, QEMU_VM_EOF); @@ -1534,22 +1476,22 @@ typedef struct TmpTestStruct { int64_t diff; } TmpTestStruct; =20 -static int tmp_child_pre_save(void *opaque) +static bool tmp_child_pre_save(void *opaque, Error **errp) { struct TmpTestStruct *tts =3D opaque; =20 tts->diff =3D tts->parent->b - tts->parent->a; =20 - return 0; + return true; } =20 -static int tmp_child_post_load(void *opaque, int version_id) +static bool tmp_child_post_load(void *opaque, int version_id, Error **errp) { struct TmpTestStruct *tts =3D opaque; =20 tts->parent->b =3D tts->parent->a + tts->diff; =20 - return 0; + return true; } =20 static const VMStateDescription vmstate_tmp_back_to_parent =3D { @@ -1562,8 +1504,8 @@ static const VMStateDescription vmstate_tmp_back_to_p= arent =3D { =20 static const VMStateDescription vmstate_tmp_child =3D { .name =3D "test/tmp_child", - .pre_save =3D tmp_child_pre_save, - .post_load =3D tmp_child_post_load, + .pre_save_errp =3D tmp_child_pre_save, + .post_load_errp =3D tmp_child_post_load, .fields =3D (const VMStateField[]) { VMSTATE_INT64(diff, TmpTestStruct), VMSTATE_STRUCT_POINTER(parent, TmpTestStruct, --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694075; cv=none; d=zohomail.com; s=zohoarc; b=W00mwRNDrt0S5BYsWFwE/0MVsnXvsHbHuSA+E0wS0te8h1I7ROWp3i+eaue1/mKsxpCG92qkSja+W6INuceEBnTm9Zzk3v0zz319KHQUeWhGSLivP0v8OUUEJrubSEN56ydoZGOUPQobNiWQue3p1EKr1rGHqpv9U6u4FjiH8lk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694075; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=59guOcB3xHJRVsozXKizUePe2ERs8W0Jafu27AlzbNQ=; b=P9gqp9RMWAQsmU++zgbLObbVXhW+uviCQFvCgjBIgw8OgDM8dxqvpnVYNFPhOJX1oiMOupJV+Bu7cWBRjV5WBDQg7bOhnp+Yd/UIrTP/Y0BZsPrRojD3agzI1ZDjT22Fnsgz9sGOhcH9tAg8bVKBOtZ8HTInyfQfdcjlMZ4/FS8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694075691299.44077915665105; Tue, 25 Aug 2026 14:41:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqt-0005jO-2x; Tue, 25 Aug 2026 17:38:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqr-0005iz-C8 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:37 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqp-0004zG-5J for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:37 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 7B32380900; Wed, 26 Aug 2026 00:38:31 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-UYBVwPpt; Wed, 26 Aug 2026 00:38:30 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693910; bh=59guOcB3xHJRVsozXKizUePe2ERs8W0Jafu27AlzbNQ=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=dO+vb4YuPaKyHiG18Ooc7jklfOtJgJQRM18F7QvtYJjPHCfaz5I3Uu8qOtwwmXwAm 0WF6LlIyIySoOmiqpAXiC/KGJpowI4+CPi/zmnAL3gdy083TX6JHZUhQgnuCSOsqft HzQCb1GWibwifqRdnTr4G3xfNcqBTAmecZmcf4Wk= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH 02/30] ui/vdagent: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:42 +0300 Message-ID: <20260825213811.3725682-3-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694076161158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- ui/vdagent.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/ui/vdagent.c b/ui/vdagent.c index b9784d4d9b9..a3a1be30404 100644 --- a/ui/vdagent.c +++ b/ui/vdagent.c @@ -938,7 +938,7 @@ static void vdagent_chr_class_init(ObjectClass *oc, con= st void *data) set_migration_blocked); } =20 -static int post_load(void *opaque, int version_id) +static bool post_load(void *opaque, int version_id, Error **errp) { VDAgentChardev *vd =3D QEMU_VDAGENT_CHARDEV(opaque); =20 @@ -950,7 +950,7 @@ static int post_load(void *opaque, int version_id) vdagent_clipboard_peer_register(vd); } =20 - return 0; + return true; } =20 static const VMStateDescription vmstate_chunk =3D { @@ -979,15 +979,16 @@ static const VMStateDescription vmstate_cbinfo_array = =3D { } }; =20 -static int put_cbinfo(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_cbinfo(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { VDAgentChardev *vd =3D QEMU_VDAGENT_CHARDEV(pv); struct CBInfoArray cbinfo =3D {}; int i; =20 if (!have_clipboard(vd)) { - return 0; + return true; } =20 for (i =3D 0; i < QEMU_CLIPBOARD_SELECTION__COUNT; i++) { @@ -996,29 +997,24 @@ static int put_cbinfo(QEMUFile *f, void *pv, size_t s= ize, } } =20 - return vmstate_save_state(f, &vmstate_cbinfo_array, &cbinfo, vmdesc, - &error_fatal); + return vmstate_save_vmsd(f, &vmstate_cbinfo_array, &cbinfo, vmdesc, er= rp); } =20 -static int get_cbinfo(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_cbinfo(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { VDAgentChardev *vd =3D QEMU_VDAGENT_CHARDEV(pv); struct CBInfoArray cbinfo =3D {}; - int i, ret; - Error *local_err =3D NULL; + int i; =20 if (!have_clipboard(vd)) { - return 0; + return true; } =20 vdagent_clipboard_peer_register(vd); =20 - ret =3D vmstate_load_state(f, &vmstate_cbinfo_array, &cbinfo, 0, - &local_err); - if (ret) { - error_report_err(local_err); - return ret; + if (!vmstate_load_vmsd(f, &vmstate_cbinfo_array, &cbinfo, 0, errp)) { + return false; } =20 for (i =3D 0; i < cbinfo.n; i++) { @@ -1029,20 +1025,20 @@ static int get_cbinfo(QEMUFile *f, void *pv, size_t= size, qemu_clipboard_update(info); } =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_cbinfos =3D { .name =3D "vdagent/cbinfos", - .get =3D get_cbinfo, - .put =3D put_cbinfo, + .load =3D load_cbinfo, + .save =3D save_cbinfo, }; =20 static const VMStateDescription vmstate_vdagent =3D { .name =3D "vdagent", .version_id =3D 0, .minimum_version_id =3D 0, - .post_load =3D post_load, + .post_load_errp =3D post_load, .fields =3D (const VMStateField[]) { VMSTATE_BOOL(connected, VDAgentChardev), VMSTATE_UINT32(caps, VDAgentChardev), --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694074; cv=none; d=zohomail.com; s=zohoarc; b=an/JQrYzvDUCuMz37567zGPt5/yDz0V4fGEXJgt7g+A4epSnh0FdOkaqBsxPuSQ11zq//F8pqgGrQl9AK5gl8c0SKuGPCblBxpNCdT/hE82cb8vWxcnH9AiFDucc7GsSim0T2rFxz/SOB3+cF1iuw0qoFG/zLf1PGlRWaF0mJNA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694074; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Jtp5jaohUch9p7DJWj0nHlAm99nPRCLA8RD+DhZUNT8=; b=L+jz5cLviLhppt0Ak1ZgHmvN0Vv7plUYOxiXzSRdE7rEEFpjXMXY701hb77WfqxxJIAj5y/BxZvFDVhohZiRMy+K4jLc5aTRbZdpDZZ08q561ICV1XI2Qka4TlWHD7QEqlx8o9qhlLZ5W60KzMytsoYbHv0swXIbSVD4eOTTypE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694074070664.6410448158139; Tue, 25 Aug 2026 14:41:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqt-0005k3-JG; Tue, 25 Aug 2026 17:38:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqs-0005jK-Py for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:38 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqp-0004zM-II for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:38 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 6940180BD7; Wed, 26 Aug 2026 00:38:32 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-jQ7aX7kL; Wed, 26 Aug 2026 00:38:31 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693911; bh=Jtp5jaohUch9p7DJWj0nHlAm99nPRCLA8RD+DhZUNT8=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=tU86OouqxmIQK/IFGRN/g3JwvC3N38nfvckqaL0Ok2hkLl1cAnv1Zb7Ob9OL0eQ4+ zFxI0xSJ9rvxyn0UL0+XPmJZaQCgDxYX9pGyGaBBXZFZOR9pue35TnEsvVTzNpGfI6 GUdPuSab3lByevRhQJ5dTMcMZjFmlhMuYsA4Mi0E= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" Subject: [PATCH 03/30] hw/virtio: extra state: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:43 +0300 Message-ID: <20260825213811.3725682-4-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694076164158500 Content-Type: text/plain; charset="utf-8" Stop ignoring the error on save path. Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/virtio/virtio-mmio.c | 21 ++++++--------------- hw/virtio/virtio-pci.c | 21 ++++++--------------- hw/virtio/virtio.c | 24 +++++++++++++----------- include/hw/virtio/virtio-bus.h | 4 ++-- 4 files changed, 27 insertions(+), 43 deletions(-) diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 55ceaeef5fc..559363e4438 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -606,29 +606,20 @@ static const VMStateDescription vmstate_virtio_mmio = =3D { } }; =20 -static void virtio_mmio_save_extra_state(DeviceState *opaque, QEMUFile *f) +static bool virtio_mmio_save_extra_state(DeviceState *opaque, QEMUFile *f, + Error **errp) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_save_state(f, &vmstate_virtio_mmio, proxy, NULL, &loca= l_err); - if (ret < 0) { - error_report_err(local_err); - } + return vmstate_save_vmsd(f, &vmstate_virtio_mmio, proxy, NULL, errp); } =20 -static int virtio_mmio_load_extra_state(DeviceState *opaque, QEMUFile *f) +static bool virtio_mmio_load_extra_state(DeviceState *opaque, QEMUFile *f, + Error **errp) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_load_state(f, &vmstate_virtio_mmio, proxy, 1, &local_e= rr); - if (ret < 0) { - error_report_err(local_err); - } - return ret; + return vmstate_load_vmsd(f, &vmstate_virtio_mmio, proxy, 1, errp); } =20 static bool virtio_mmio_has_extra_state(DeviceState *opaque) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 6f5db5fc42b..7a5d4f35e33 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -184,29 +184,20 @@ static bool virtio_pci_has_extra_state(DeviceState *d) return true; } =20 -static void virtio_pci_save_extra_state(DeviceState *d, QEMUFile *f) +static bool virtio_pci_save_extra_state(DeviceState *d, QEMUFile *f, + Error **errp) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_save_state(f, &vmstate_virtio_pci, proxy, NULL, &local= _err); - if (ret < 0) { - error_report_err(local_err); - } + return vmstate_save_vmsd(f, &vmstate_virtio_pci, proxy, NULL, errp); } =20 -static int virtio_pci_load_extra_state(DeviceState *d, QEMUFile *f) +static bool virtio_pci_load_extra_state(DeviceState *d, QEMUFile *f, + Error **errp) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_load_state(f, &vmstate_virtio_pci, proxy, 1, &local_er= r); - if (ret < 0) { - error_report_err(local_err); - } - return ret; + return vmstate_load_vmsd(f, &vmstate_virtio_pci, proxy, 1, errp); } =20 static void virtio_pci_save_queue(DeviceState *d, int n, QEMUFile *f) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index daa5607338c..8230a383aff 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2914,35 +2914,37 @@ static const VMStateDescription vmstate_virtio_ring= size =3D { } }; =20 -static int get_extra_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_extra_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + Error **errp) { VirtIODevice *vdev =3D pv; BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); =20 if (!k->load_extra_state) { - return -1; - } else { - return k->load_extra_state(qbus->parent, f); + error_setg(errp, "extra state is unsupported"); + return false; } + + return k->load_extra_state(qbus->parent, f, errp); } =20 -static int put_extra_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_extra_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { VirtIODevice *vdev =3D pv; BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); =20 - k->save_extra_state(qbus->parent, f); - return 0; + return k->save_extra_state(qbus->parent, f, errp); } =20 static const VMStateInfo vmstate_info_extra_state =3D { .name =3D "virtqueue_extra_state", - .get =3D get_extra_state, - .put =3D put_extra_state, + .load =3D load_extra_state, + .save =3D save_extra_state, }; =20 static const VMStateDescription vmstate_virtio_extra_state =3D { diff --git a/include/hw/virtio/virtio-bus.h b/include/hw/virtio/virtio-bus.h index f80fd714244..255ecb2fcb2 100644 --- a/include/hw/virtio/virtio-bus.h +++ b/include/hw/virtio/virtio-bus.h @@ -43,11 +43,11 @@ struct VirtioBusClass { void (*notify)(DeviceState *d, uint16_t vector); void (*save_config)(DeviceState *d, QEMUFile *f); void (*save_queue)(DeviceState *d, int n, QEMUFile *f); - void (*save_extra_state)(DeviceState *d, QEMUFile *f); + bool (*save_extra_state)(DeviceState *d, QEMUFile *f, Error **errp); int (*load_config)(DeviceState *d, QEMUFile *f); int (*load_queue)(DeviceState *d, int n, QEMUFile *f); int (*load_done)(DeviceState *d, QEMUFile *f); - int (*load_extra_state)(DeviceState *d, QEMUFile *f); + bool (*load_extra_state)(DeviceState *d, QEMUFile *f, Error **errp); bool (*has_extra_state)(DeviceState *d); bool (*query_guest_notifiers)(DeviceState *d); int (*set_guest_notifiers)(DeviceState *d, int nvqs, bool assign); --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694046; cv=none; d=zohomail.com; s=zohoarc; b=Nz+WWRVx6amnEn9DT+hjKZqGU/0qa83fTkMD8HbRhnjzS5ZsDE5SkpmUU6da7+8sAVhxWzuf1mYuiSaJEWyBq7ruyiXfZctcqyljNcgRXq25KwdhMjsBh+rly7dS7y/eJyjgBU1S/cgZ1Vo8b9tFcUqsHXo+GON+Fat8onmq7Xc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694046; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BpP/j5/dSMdKrZHMQJTDTf7onni9P7nIBpSBhvnd+uc=; b=GINWphXRXj939K3VgC7ejcMtd3iahw1N2NUsqLkQDGYxAEgt4TvYzmnDwP3gR5uOumEON7IEtHgLDzslYnQa8rjyhUUaZR3OSwOfpuHzYMA2/ZLJZWr76DW+lArKBd/ZyWWCX+70dsRs63GL2LDGz5MfdNb/RwdENyWVv14rAm0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694046212982.3783507297334; Tue, 25 Aug 2026 14:40:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqv-0005lN-Nm; Tue, 25 Aug 2026 17:38:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqt-0005jo-4m; Tue, 25 Aug 2026 17:38:39 -0400 Received: from forwardcorp1b.mail.yandex.net ([178.154.239.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqq-0004zW-K1; Tue, 25 Aug 2026 17:38:38 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 0507D80BD3; Wed, 26 Aug 2026 00:38:34 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-QaZNLQMv; Wed, 26 Aug 2026 00:38:33 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693913; bh=BpP/j5/dSMdKrZHMQJTDTf7onni9P7nIBpSBhvnd+uc=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=iohPVbKcgE1AWhZdT8gf/tNOeYT+JPfbpsqqnkYE6vABZDUJZibPXoh59LC0Hrcv1 wV5jDpgLGa/EFyHnqblW7R2uN3PYqVwcFd+3GJYFARtSKMbLyDendGkl2cQbohHVtS mOpGvgQ+zhas2rq90IMm360vFmZJTRd0LMsbKb8w= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , Ilya Leoshkevich , David Hildenbrand , Matthew Rosato , Christian Borntraeger , qemu-s390x@nongnu.org (open list:virtio-ccw) Subject: [PATCH 04/30] hw/virtio: config save/load: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:44 +0300 Message-ID: <20260825213811.3725682-5-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.136; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694048048158500 Content-Type: text/plain; charset="utf-8" Stop ignoring the error on save path. Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/pci/pci.c | 27 +++++++++++---------------- hw/s390x/virtio-ccw.c | 19 ++++--------------- hw/virtio/virtio-mmio.c | 10 +++++++--- hw/virtio/virtio-pci.c | 24 +++++++++++++++--------- hw/virtio/virtio.c | 11 +++++++---- include/hw/pci/pci.h | 4 ++-- include/hw/virtio/virtio-bus.h | 4 ++-- 7 files changed, 48 insertions(+), 51 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index d3191609e28..76d006fa1d7 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -940,37 +940,32 @@ const VMStateDescription vmstate_pci_device =3D { }; =20 =20 -void pci_device_save(PCIDevice *s, QEMUFile *f) +bool pci_device_save(PCIDevice *s, QEMUFile *f, Error **errp) { - Error *local_err =3D NULL; - int ret; + bool ok; =20 /* Clear interrupt status bit: it is implicit * in irq_state which we are saving. * This makes us compatible with old devices * which never set or clear this bit. */ s->config[PCI_STATUS] &=3D ~PCI_STATUS_INTERRUPT; - ret =3D vmstate_save_state(f, &vmstate_pci_device, s, NULL, &local_err= ); - if (ret < 0) { - error_report_err(local_err); - } + + ok =3D vmstate_save_vmsd(f, &vmstate_pci_device, s, NULL, errp); + /* Restore the interrupt status bit. */ pci_update_irq_status(s); + + return ok; } =20 -int pci_device_load(PCIDevice *s, QEMUFile *f) +bool pci_device_load(PCIDevice *s, QEMUFile *f, Error **errp) { - Error *local_err =3D NULL; - int ret; + bool ok =3D vmstate_load_vmsd(f, &vmstate_pci_device, s, s->version_id= , errp); =20 - ret =3D vmstate_load_state(f, &vmstate_pci_device, s, s->version_id, - &local_err); - if (ret < 0) { - error_report_err(local_err); - } /* Restore the interrupt status bit. */ pci_update_irq_status(s); - return ret; + + return ok; } =20 static void pci_set_default_subsystem_id(PCIDevice *pci_dev) diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index d82874ed27e..848ed09e94b 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1129,29 +1129,18 @@ static int virtio_ccw_load_queue(DeviceState *d, in= t n, QEMUFile *f) return 0; } =20 -static void virtio_ccw_save_config(DeviceState *d, QEMUFile *f) +static bool virtio_ccw_save_config(DeviceState *d, QEMUFile *f, Error **er= rp) { VirtioCcwDevice *dev =3D VIRTIO_CCW_DEVICE(d); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_save_state(f, &vmstate_virtio_ccw_dev, dev, NULL, &loc= al_err); - if (ret < 0) { - error_report_err(local_err); - } + return vmstate_save_vmsd(f, &vmstate_virtio_ccw_dev, dev, NULL, errp); } =20 -static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) +static bool virtio_ccw_load_config(DeviceState *d, QEMUFile *f, Error **er= rp) { VirtioCcwDevice *dev =3D VIRTIO_CCW_DEVICE(d); - Error *local_err =3D NULL; - int ret; =20 - ret =3D vmstate_load_state(f, &vmstate_virtio_ccw_dev, dev, 1, &local_= err); - if (ret < 0) { - error_report_err(local_err); - } - return ret; + return vmstate_load_vmsd(f, &vmstate_virtio_ccw_dev, dev, 1, errp); } =20 static void virtio_ccw_pre_plugged(DeviceState *d, Error **errp) diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 559363e4438..ef34b76913e 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -547,23 +547,27 @@ static void virtio_mmio_update_irq(DeviceState *opaqu= e, uint16_t vector) qemu_set_irq(proxy->irq, level); } =20 -static int virtio_mmio_load_config(DeviceState *opaque, QEMUFile *f) +static bool virtio_mmio_load_config(DeviceState *opaque, QEMUFile *f, + Error **errp) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); =20 proxy->host_features_sel =3D qemu_get_be32(f); proxy->guest_features_sel =3D qemu_get_be32(f); proxy->guest_page_shift =3D qemu_get_be32(f); - return 0; + return true; } =20 -static void virtio_mmio_save_config(DeviceState *opaque, QEMUFile *f) +static bool virtio_mmio_save_config(DeviceState *opaque, QEMUFile *f, + Error **errp) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); =20 qemu_put_be32(f, proxy->host_features_sel); qemu_put_be32(f, proxy->guest_features_sel); qemu_put_be32(f, proxy->guest_page_shift); + + return true; } =20 static const VMStateDescription vmstate_virtio_mmio_queue_state =3D { diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 7a5d4f35e33..07941319be2 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -84,15 +84,21 @@ static void virtio_pci_notify(DeviceState *d, uint16_t = vector) } } =20 -static void virtio_pci_save_config(DeviceState *d, QEMUFile *f) +static bool virtio_pci_save_config(DeviceState *d, QEMUFile *f, Error **er= rp) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); VirtIODevice *vdev =3D virtio_bus_get_device(&proxy->bus); =20 - pci_device_save(&proxy->pci_dev, f); + if (!pci_device_save(&proxy->pci_dev, f, errp)) { + return false; + } + msix_save(&proxy->pci_dev, f); - if (msix_present(&proxy->pci_dev)) + if (msix_present(&proxy->pci_dev)) { qemu_put_be16(f, vdev->config_vector); + } + + return true; } =20 static const VMStateDescription vmstate_virtio_pci_modern_queue_state =3D { @@ -209,24 +215,24 @@ static void virtio_pci_save_queue(DeviceState *d, int= n, QEMUFile *f) qemu_put_be16(f, virtio_queue_vector(vdev, n)); } =20 -static int virtio_pci_load_config(DeviceState *d, QEMUFile *f) +static bool virtio_pci_load_config(DeviceState *d, QEMUFile *f, Error **er= rp) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); VirtIODevice *vdev =3D virtio_bus_get_device(&proxy->bus); uint16_t vector; =20 - int ret; - ret =3D pci_device_load(&proxy->pci_dev, f); - if (ret) { - return ret; + if (!pci_device_load(&proxy->pci_dev, f, errp)) { + return false; } + msix_unuse_all_vectors(&proxy->pci_dev); msix_load(&proxy->pci_dev, f); if (msix_present(&proxy->pci_dev)) { qemu_get_be16s(f, &vector); =20 if (vector !=3D VIRTIO_NO_VECTOR && vector >=3D proxy->nvectors) { - return -EINVAL; + error_setg(errp, "load config: unexpected vector %" PRIu16, ve= ctor); + return false; } } else { vector =3D VIRTIO_NO_VECTOR; diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 8230a383aff..0f7c8acead0 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3077,7 +3077,10 @@ int virtio_save(VirtIODevice *vdev, QEMUFile *f) Error *local_err =3D NULL; =20 if (k->save_config) { - k->save_config(qbus->parent, f); + if (!k->save_config(qbus->parent, f, &local_err)) { + error_report_err(local_err); + return -EINVAL; + } } =20 qemu_put_8s(f, &vdev->status); @@ -3526,9 +3529,9 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int vers= ion_id) vdev->device_endian =3D VIRTIO_DEVICE_ENDIAN_UNKNOWN; =20 if (k->load_config) { - ret =3D k->load_config(qbus->parent, f); - if (ret) - return ret; + if (!k->load_config(qbus->parent, f, &local_err)) { + return -EINVAL; + } } =20 qemu_get_8s(f, &vdev->status); diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index f2448e941a0..7c3fdc05630 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -270,8 +270,8 @@ uint32_t pci_default_read_config(PCIDevice *d, uint32_t address, int len); void pci_default_write_config(PCIDevice *d, uint32_t address, uint32_t val, int len); -void pci_device_save(PCIDevice *s, QEMUFile *f); -int pci_device_load(PCIDevice *s, QEMUFile *f); +bool pci_device_save(PCIDevice *s, QEMUFile *f, Error **errp); +bool pci_device_load(PCIDevice *s, QEMUFile *f, Error **errp); MemoryRegion *pci_address_space(PCIDevice *dev); MemoryRegion *pci_address_space_io(PCIDevice *dev); =20 diff --git a/include/hw/virtio/virtio-bus.h b/include/hw/virtio/virtio-bus.h index 255ecb2fcb2..1b9867002b8 100644 --- a/include/hw/virtio/virtio-bus.h +++ b/include/hw/virtio/virtio-bus.h @@ -41,10 +41,10 @@ struct VirtioBusClass { /* This is what a VirtioBus must implement */ BusClass parent; void (*notify)(DeviceState *d, uint16_t vector); - void (*save_config)(DeviceState *d, QEMUFile *f); + bool (*save_config)(DeviceState *d, QEMUFile *f, Error **errp); void (*save_queue)(DeviceState *d, int n, QEMUFile *f); bool (*save_extra_state)(DeviceState *d, QEMUFile *f, Error **errp); - int (*load_config)(DeviceState *d, QEMUFile *f); + bool (*load_config)(DeviceState *d, QEMUFile *f, Error **errp); int (*load_queue)(DeviceState *d, int n, QEMUFile *f); int (*load_done)(DeviceState *d, QEMUFile *f); bool (*load_extra_state)(DeviceState *d, QEMUFile *f, Error **errp); --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693953; cv=none; d=zohomail.com; s=zohoarc; b=AZ+n7CQjpHRe2iRU8UGPxOHyjulx29ka4CvQxRH9UtabYaOpn3MgTa+mkFLhhlyEuj7nElJuVq72nHPCEhpggCqXSiS1jkjOdCjIB1PW+4LMLymTLzd9tQdIUWFa3QSpUHZVCh4kmokIPwJAakNszoH5sl2tg9humO1PiGvJ2us= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693953; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=t0e2I1m920XciUnl8p+3NgqDLRnZSJTAzO03yTxRpb8=; b=mxAvnebS47H0OQPBS7++27J47Gq/c1KpxuLE9lLqb1fMrz3TrIs6SO/5cLej0etJltCit3tfRcxJxHP0P5Lpt/v5QmJxRJjyV0mAAK8Oc1hrZZxUWdTvCMD8RF4vRQSyAFgAzSX+yBzo3+POIMZisGu+i9gAhG2RjiQeUMqFqHE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693952881990.7830363199076; Tue, 25 Aug 2026 14:39:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqw-0005lo-C7; Tue, 25 Aug 2026 17:38:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqt-0005k7-LF for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:39 -0400 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqq-0004za-VH for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:39 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id D7A20C0962; Wed, 26 Aug 2026 00:38:34 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-m8ix9V4V; Wed, 26 Aug 2026 00:38:34 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693914; bh=t0e2I1m920XciUnl8p+3NgqDLRnZSJTAzO03yTxRpb8=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=z7rWjslp+H/o4XiXuoaWZsz9AKYtPaeQ4Y9HNeZuQxGRT2C+V7UhSfcyj5S3+p9OA AYWFXu2cfY26wxlaMvvvq4kk+E+lmnJdWncS7Obz2MHnCRUC3TT0NKutWwAFsA7tnd Qnp4D5VEyweQmdVLJih2wSlX3sV9Nndxc60rQT/0= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" Subject: [PATCH 05/30] hw/virtio: make virtio_save() and virtio_load() static Date: Wed, 26 Aug 2026 00:37:45 +0300 Message-ID: <20260825213811.3725682-6-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693957038158500 Content-Type: text/plain; charset="utf-8" These functions are used only in virtio.c, no reason to make them public. Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/virtio/virtio.c | 7 +++++-- include/hw/virtio/virtio.h | 4 ---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 0f7c8acead0..a9338af6d00 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -62,6 +62,9 @@ */ #define VIRTIO_PCI_VRING_ALIGN 4096 =20 +static int coroutine_mixed_fn +virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id); + typedef struct VRingDesc { uint64_t addr; @@ -3067,7 +3070,7 @@ static const VMStateDescription vmstate_virtio =3D { } }; =20 -int virtio_save(VirtIODevice *vdev, QEMUFile *f) +static int virtio_save(VirtIODevice *vdev, QEMUFile *f) { BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); @@ -3510,7 +3513,7 @@ size_t virtio_get_config_size(const VirtIOConfigSizeP= arams *params, return config_size; } =20 -int coroutine_mixed_fn +static int coroutine_mixed_fn virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id) { int i, ret; diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index c99cb19d886..9628ae3bcb8 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -338,8 +338,6 @@ int virtqueue_get_avail_bytes(VirtQueue *vq, unsigned i= nt *in_bytes, =20 void virtio_notify(VirtIODevice *vdev, VirtQueue *vq); =20 -int virtio_save(VirtIODevice *vdev, QEMUFile *f); - /** * virtio_new_shmem_region() - Create a new shared memory region * @vdev: VirtIODevice @@ -443,8 +441,6 @@ extern const VMStateInfo virtio_vmstate_info; .flags =3D VMS_SINGLE, \ } =20 -int virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id); - /** * virtio_notify_config() - signal a change to device config * @vdev: the virtio device --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693977; cv=none; d=zohomail.com; s=zohoarc; b=TVJPVM4i9xRv4BPhYRfA+azvC4uUY/ar4A0GtzAluM8k+U8CpBQ9o5NOUrkDFUEl+EgmfQuzk8EmmeyKzNl2jbvpS5GGPkP5Igy2UXuK773HV5n+6qkUJmrQhqDxZPVsOIjpRFN3Uj23m465iwFjQyIQ6A0IhTHfD1s1NshbiQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693977; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3JreOw/yxjMpt9tVH1GrL9YNuns9LMVw6WHNE68YnwM=; b=UsYbRbaaKWkAxnn/BFu9MhvFZSF8HBS6CERIdF5fI0o8LAGTDxG1Zcn1LEfpf2Q6MKE9aU14fHuhpHI08ynjJQ041YCxt4muVi16suDuFQF54wDtYshiYl1srJJcPEgSm1PUlCFWyu1i+aWuDZDwxvNmaTqp50rSDy2hIu1LvtU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693977525218.69088971080157; Tue, 25 Aug 2026 14:39:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqw-0005ly-Rv; Tue, 25 Aug 2026 17:38:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqv-0005lK-A6 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:41 -0400 Received: from forwardcorp1b.mail.yandex.net ([178.154.239.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqs-00050F-GW for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:41 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 25BE680873; Wed, 26 Aug 2026 00:38:37 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-NWxBerbr; Wed, 26 Aug 2026 00:38:36 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693916; bh=3JreOw/yxjMpt9tVH1GrL9YNuns9LMVw6WHNE68YnwM=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=TBgShofEnzzg3Xzi0ABmZ60kGYKIOHelpjk5X+gyG60Nxw8vbzLqT+zbpPozWFzf3 aWTSwdyWsI99cjdWtMjL5p4Et+qPfNmHVdoqNbbYWt7PiBQY1uFaSI0ejlRmOZNsM5 KPosYAtrBIVCPeLcPDVIW1hwLkvNhPnKGEWhv8eM= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" , Stefano Garzarella , Stefan Hajnoczi , virtio-fs@lists.linux.dev (open list:virtiofs) Subject: [PATCH 06/30] hw/virtio: remaining: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:46 +0300 Message-ID: <20260825213811.3725682-7-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.136; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693980122158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/virtio/vhost-user-fs.c | 68 +++++++++---------- hw/virtio/virtio.c | 133 +++++++++++++++++++------------------- 2 files changed, 100 insertions(+), 101 deletions(-) diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c index 209993918a3..215aff77282 100644 --- a/hw/virtio/vhost-user-fs.c +++ b/hw/virtio/vhost-user-fs.c @@ -307,49 +307,50 @@ static struct vhost_dev *vuf_get_vhost(VirtIODevice *= vdev) /** * Fetch the internal state from virtiofsd and save it to `f`. */ -static int vuf_save_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool vuf_save_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { + ERRP_GUARD(); VirtIODevice *vdev =3D pv; VHostUserFS *fs =3D VHOST_USER_FS(vdev); - Error *local_error =3D NULL; int ret; =20 - ret =3D vhost_save_backend_state(&fs->vhost_dev, f, &local_error); + ret =3D vhost_save_backend_state(&fs->vhost_dev, f, errp); if (ret < 0) { - error_reportf_err(local_error, - "Error saving back-end state of %s device %s " - "(tag: \"%s\"): ", - vdev->name, vdev->parent_obj.canonical_path, - fs->conf.tag ?: ""); - return ret; + error_prepend(errp, + "Error saving back-end state of %s device %s " + "(tag: \"%s\"): ", + vdev->name, vdev->parent_obj.canonical_path, + fs->conf.tag ?: ""); + return false; } =20 - return 0; + return true; } =20 /** * Load virtiofsd's internal state from `f` and send it over to virtiofsd. */ -static int vuf_load_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool vuf_load_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { + ERRP_GUARD(); VirtIODevice *vdev =3D pv; VHostUserFS *fs =3D VHOST_USER_FS(vdev); - Error *local_error =3D NULL; int ret; =20 - ret =3D vhost_load_backend_state(&fs->vhost_dev, f, &local_error); + ret =3D vhost_load_backend_state(&fs->vhost_dev, f, errp); if (ret < 0) { - error_reportf_err(local_error, - "Error loading back-end state of %s device %s " - "(tag: \"%s\"): ", - vdev->name, vdev->parent_obj.canonical_path, - fs->conf.tag ?: ""); - return ret; + error_prepend(errp, + "Error loading back-end state of %s device %s " + "(tag: \"%s\"): ", + vdev->name, vdev->parent_obj.canonical_path, + fs->conf.tag ?: ""); + return false; } =20 - return 0; + return true; } =20 static bool vuf_is_internal_migration(void *opaque) @@ -358,20 +359,21 @@ static bool vuf_is_internal_migration(void *opaque) return true; } =20 -static int vuf_check_migration_support(void *opaque) +static bool vuf_check_migration_support(void *opaque, Error **errp) { VirtIODevice *vdev =3D opaque; VHostUserFS *fs =3D VHOST_USER_FS(vdev); =20 if (!vhost_supports_device_state(&fs->vhost_dev)) { - error_report("Back-end of %s device %s (tag: \"%s\") does not supp= ort " - "migration through qemu", - vdev->name, vdev->parent_obj.canonical_path, - fs->conf.tag ?: ""); - return -ENOTSUP; + error_setg(errp, + "Back-end of %s device %s (tag: \"%s\") does not suppor= t " + "migration through qemu", + vdev->name, vdev->parent_obj.canonical_path, + fs->conf.tag ?: ""); + return false; } =20 - return 0; + return true; } =20 static const VMStateDescription vuf_backend_vmstate; @@ -393,15 +395,15 @@ static const VMStateDescription vuf_backend_vmstate = =3D { .name =3D "vhost-user-fs-backend", .version_id =3D 0, .needed =3D vuf_is_internal_migration, - .pre_load =3D vuf_check_migration_support, - .pre_save =3D vuf_check_migration_support, + .pre_load_errp =3D vuf_check_migration_support, + .pre_save_errp =3D vuf_check_migration_support, .fields =3D (const VMStateField[]) { { .name =3D "back-end", .info =3D &(const VMStateInfo) { .name =3D "virtio-fs back-end state", - .get =3D vuf_load_state, - .put =3D vuf_save_state, + .load =3D vuf_load_state, + .save =3D vuf_save_state, }, }, VMSTATE_END_OF_LIST() diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index a9338af6d00..0b1ec41ac97 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -62,8 +62,8 @@ */ #define VIRTIO_PCI_VRING_ALIGN 4096 =20 -static int coroutine_mixed_fn -virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id); +static bool coroutine_mixed_fn +virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id, Error **errp); =20 typedef struct VRingDesc { @@ -3070,19 +3070,17 @@ static const VMStateDescription vmstate_virtio =3D { } }; =20 -static int virtio_save(VirtIODevice *vdev, QEMUFile *f) +static bool virtio_save(VirtIODevice *vdev, QEMUFile *f, Error **errp) { BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); uint32_t guest_features_lo =3D (vdev->guest_features & 0xffffffff); - int i, ret; - Error *local_err =3D NULL; + int i; =20 if (k->save_config) { - if (!k->save_config(qbus->parent, f, &local_err)) { - error_report_err(local_err); - return -EINVAL; + if (!k->save_config(qbus->parent, f, errp)) { + return false; } } =20 @@ -3124,19 +3122,13 @@ static int virtio_save(VirtIODevice *vdev, QEMUFile= *f) } =20 if (vdc->vmsd) { - ret =3D vmstate_save_state(f, vdc->vmsd, vdev, NULL, &local_err); - if (ret) { - error_report_err(local_err); - return ret; + if (!vmstate_save_vmsd(f, vdc->vmsd, vdev, NULL, errp)) { + return false; } } =20 /* Subsections */ - ret =3D vmstate_save_state(f, &vmstate_virtio, vdev, NULL, &local_err); - if (ret < 0) { - error_report_err(local_err); - } - return ret; + return vmstate_save_vmsd(f, &vmstate_virtio, vdev, NULL, errp); } =20 VirtioSharedMemory *virtio_new_shmem_region(VirtIODevice *vdev, uint8_t sh= mid, uint64_t size) @@ -3307,27 +3299,28 @@ void virtio_del_shmem_map(VirtioSharedMemory *shmem= , hwaddr offset, } =20 /* A wrapper for use as a VMState .put function */ -static int virtio_device_put(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdes= c) +static bool virtio_device_save(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmde= sc, + Error **errp) { - return virtio_save(VIRTIO_DEVICE(opaque), f); + return virtio_save(VIRTIO_DEVICE(opaque), f, errp); } =20 /* A wrapper for use as a VMState .get function */ -static int coroutine_mixed_fn -virtio_device_get(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool coroutine_mixed_fn +virtio_device_load(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(opaque); DeviceClass *dc =3D DEVICE_CLASS(VIRTIO_DEVICE_GET_CLASS(vdev)); =20 - return virtio_load(vdev, f, dc->vmsd->version_id); + return virtio_load(vdev, f, dc->vmsd->version_id, errp); } =20 const VMStateInfo virtio_vmstate_info =3D { .name =3D "virtio", - .get =3D virtio_device_get, - .put =3D virtio_device_put, + .load =3D virtio_device_load, + .save =3D virtio_device_save, }; =20 static int virtio_set_features_nocheck(VirtIODevice *vdev, const uint64_t = *val) @@ -3513,8 +3506,8 @@ size_t virtio_get_config_size(const VirtIOConfigSizeP= arams *params, return config_size; } =20 -static int coroutine_mixed_fn -virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id) +static bool coroutine_mixed_fn +virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id, Error **errp) { int i, ret; uint32_t config_len; @@ -3523,7 +3516,6 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int vers= ion_id) BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); - Error *local_err =3D NULL; =20 /* * We poison the endianness to ensure it does not get used before @@ -3532,8 +3524,8 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int vers= ion_id) vdev->device_endian =3D VIRTIO_DEVICE_ENDIAN_UNKNOWN; =20 if (k->load_config) { - if (!k->load_config(qbus->parent, f, &local_err)) { - return -EINVAL; + if (!k->load_config(qbus->parent, f, errp)) { + return false; } } =20 @@ -3541,7 +3533,9 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int vers= ion_id) qemu_get_8s(f, &vdev->isr); qemu_get_be16s(f, &vdev->queue_sel); if (vdev->queue_sel >=3D VIRTIO_QUEUE_MAX) { - return -1; + error_setg(errp, "virtio_load: queue_sel %u out of range", + vdev->queue_sel); + return false; } qemu_get_be32s(f, &features); =20 @@ -3566,7 +3560,9 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int vers= ion_id) =20 while (config_len > vdev->config_len) { if (qemu_file_get_error(f)) { - return -1; + error_setg(errp, "virtio_load: stream error while skipping " + "excess config"); + return false; } qemu_get_byte(f); config_len--; @@ -3575,24 +3571,25 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) num =3D qemu_get_be32(f); =20 if (num > VIRTIO_QUEUE_MAX) { - error_report("Invalid number of virtqueues: 0x%x", num); - return -1; + error_setg(errp, "Invalid number of virtqueues: 0x%x", num); + return false; } =20 if (vdc->pre_load_queues) { ret =3D vdc->pre_load_queues(vdev, num); if (ret) { - return ret; + error_setg(errp, "virtio_load: pre_load_queues failed"); + return false; } } =20 for (i =3D 0; i < num; i++) { vdev->vq[i].vring.num =3D qemu_get_be32(f); if (vdev->vq[i].vring.num > vdev->vq[i].vring.num_default) { - error_report("VQ %d vring.num %u exceeds allocated max %u", - i, vdev->vq[i].vring.num, - vdev->vq[i].vring.num_default); - return -1; + error_setg(errp, "VQ %d vring.num %u exceeds allocated max %u", + i, vdev->vq[i].vring.num, + vdev->vq[i].vring.num_default); + return false; } if (k->has_variable_vring_alignment) { vdev->vq[i].vring.align =3D qemu_get_be32(f); @@ -3603,15 +3600,17 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) vdev->vq[i].notification =3D true; =20 if (!vdev->vq[i].vring.desc && vdev->vq[i].last_avail_idx) { - error_report("VQ %d address 0x0 " - "inconsistent with Host index 0x%x", - i, vdev->vq[i].last_avail_idx); - return -1; + error_setg(errp, "VQ %d address 0x0 " + "inconsistent with Host index 0x%x", + i, vdev->vq[i].last_avail_idx); + return false; } if (k->load_queue) { ret =3D k->load_queue(qbus->parent, i, f); - if (ret) - return ret; + if (ret) { + error_setg(errp, "virtio_load: load_queue failed for vq %d= ", i); + return false; + } } } =20 @@ -3620,23 +3619,20 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) if (vdc->load !=3D NULL) { ret =3D vdc->load(vdev, f, version_id); if (ret) { - return ret; + error_setg(errp, "virtio_load: device load failed"); + return false; } } =20 if (vdc->vmsd) { - ret =3D vmstate_load_state(f, vdc->vmsd, vdev, version_id, &local_= err); - if (ret) { - error_report_err(local_err); - return ret; + if (!vmstate_load_vmsd(f, vdc->vmsd, vdev, version_id, errp)) { + return false; } } =20 /* Subsections */ - ret =3D vmstate_load_state(f, &vmstate_virtio, vdev, 1, &local_err); - if (ret) { - error_report_err(local_err); - return ret; + if (!vmstate_load_vmsd(f, &vmstate_virtio, vdev, 1, errp)) { + return false; } =20 if (vdev->device_endian =3D=3D VIRTIO_DEVICE_ENDIAN_UNKNOWN) { @@ -3649,11 +3645,11 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) */ if (virtio_set_features_nocheck_maybe_co(vdev, vdev->guest_features_ex) < 0)= { - error_report("Features 0x" VIRTIO_FEATURES_FMT " unsupported. " - "Allowed features: 0x" VIRTIO_FEATURES_FMT, - VIRTIO_FEATURES_PR(vdev->guest_features_ex), - VIRTIO_FEATURES_PR(vdev->host_features_ex)); - return -1; + error_setg(errp, "Features 0x" VIRTIO_FEATURES_FMT " unsupported. " + "Allowed features: 0x" VIRTIO_FEATURES_FMT, + VIRTIO_FEATURES_PR(vdev->guest_features_ex), + VIRTIO_FEATURES_PR(vdev->host_features_ex)); + return false; } =20 if (!virtio_device_started(vdev, vdev->status) && @@ -3710,12 +3706,12 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) vdev->vq[i].inuse =3D (uint16_t)(vdev->vq[i].last_avail_idx - vdev->vq[i].used_idx); if (vdev->vq[i].inuse > vdev->vq[i].vring.num) { - error_report("VQ %d size 0x%x < last_avail_idx 0x%x - " - "used_idx 0x%x", - i, vdev->vq[i].vring.num, - vdev->vq[i].last_avail_idx, - vdev->vq[i].used_idx); - return -1; + error_setg(errp, "VQ %d size 0x%x < last_avail_idx 0x%x - " + "used_idx 0x%x", + i, vdev->vq[i].vring.num, + vdev->vq[i].last_avail_idx, + vdev->vq[i].used_idx); + return false; } } } @@ -3723,11 +3719,12 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) if (vdc->post_load) { ret =3D vdc->post_load(vdev); if (ret) { - return ret; + error_setg(errp, "virtio_load: post_load failed"); + return false; } } =20 - return 0; + return true; } =20 void virtio_cleanup(VirtIODevice *vdev) --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694022; cv=none; d=zohomail.com; s=zohoarc; b=Q/DzFHhJ/K8aMODcicLPkOalMoR8NbYm0ai+6Q4dwZM1W47+HHcXWH/hEY32HdgqYYPUhr9X4pRyT4WVtBghBlmTyUqil2OhvjbQO+MNwIJDd5qYUg1kDj0tHRpP5p6OQsDoPJroyEtV1T8Kg9Rnzs0GqIIVbcVmxwcv6xC1peM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694022; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3TucEDGYL4Tz/5ZHt31+D7e0DrG/4eNWyU9JDjFDsno=; b=P0SRuR0rU0R7PYw3m4zkGJanTLkosuIxUj0401wnDyou6MYwGm6cQycIPk5aHT+9IEETrS4BqK/SBPHAFmjeehS45FNrwagWVEhIu3sPig6UsepxW9Bwtx4VeK6t5aTVFHDb4grUakLGi68FGU+WprOFwaBh2tltBo50t1D3j6k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694022691340.33065657271516; Tue, 25 Aug 2026 14:40:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqx-0005n2-Sd; Tue, 25 Aug 2026 17:38:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqw-0005lq-J9; Tue, 25 Aug 2026 17:38:42 -0400 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqu-00050f-Le; Tue, 25 Aug 2026 17:38:42 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id 17329C0964; Wed, 26 Aug 2026 00:38:38 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-Pj3kW4Mt; Wed, 26 Aug 2026 00:38:37 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693917; bh=3TucEDGYL4Tz/5ZHt31+D7e0DrG/4eNWyU9JDjFDsno=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=P+afU7QVgxFvREe4e6YFpA/G146cx8gSKNf9q1KazLpcrJZ1m8H3bgLFfkEOpUfCp c3x334nywV15dvMeU7Z/w5VyuWEfnv0hlq2HVud2/7OBEnwRnwC4x4896DUKL4ePNE ZqK0eLABSU6VDiOyDmi0m65sF56BzU0lB+kg7uUE= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Cornelia Huck , Halil Pasic , Eric Farman , "Michael S. Tsirkin" , Matthew Rosato , Richard Henderson , Ilya Leoshkevich , David Hildenbrand , Christian Borntraeger , qemu-s390x@nongnu.org (open list:virtio-ccw) Subject: [PATCH 07/30] hw/s390x/virtio-ccw.c: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:47 +0300 Message-ID: <20260825213811.3725682-8-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694023927158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/s390x/virtio-ccw.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 848ed09e94b..6bc901a64ec 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -40,7 +40,7 @@ =20 bool have_virtio_ccw =3D true; =20 -static int virtio_ccw_dev_post_load(void *opaque, int version_id) +static bool virtio_ccw_dev_post_load(void *opaque, int version_id, Error *= *errp) { VirtioCcwDevice *dev =3D VIRTIO_CCW_DEVICE(opaque); CcwDevice *ccw_dev =3D CCW_DEVICE(dev); @@ -56,7 +56,7 @@ static int virtio_ccw_dev_post_load(void *opaque, int ver= sion_id) if (ck->refill_ids) { ck->refill_ids(ccw_dev); } - return 0; + return true; } =20 typedef struct VirtioCcwDeviceTmp { @@ -64,7 +64,7 @@ typedef struct VirtioCcwDeviceTmp { uint16_t config_vector; } VirtioCcwDeviceTmp; =20 -static int virtio_ccw_dev_tmp_pre_save(void *opaque) +static bool virtio_ccw_dev_tmp_pre_save(void *opaque, Error **errp) { VirtioCcwDeviceTmp *tmp =3D opaque; VirtioCcwDevice *dev =3D tmp->parent; @@ -72,23 +72,24 @@ static int virtio_ccw_dev_tmp_pre_save(void *opaque) =20 tmp->config_vector =3D vdev->config_vector; =20 - return 0; + return true; } =20 -static int virtio_ccw_dev_tmp_post_load(void *opaque, int version_id) +static bool virtio_ccw_dev_tmp_post_load(void *opaque, int version_id, + Error **errp) { VirtioCcwDeviceTmp *tmp =3D opaque; VirtioCcwDevice *dev =3D tmp->parent; VirtIODevice *vdev =3D virtio_bus_get_device(&dev->bus); =20 vdev->config_vector =3D tmp->config_vector; - return 0; + return true; } =20 const VMStateDescription vmstate_virtio_ccw_dev_tmp =3D { .name =3D "s390_virtio_ccw_dev_tmp", - .pre_save =3D virtio_ccw_dev_tmp_pre_save, - .post_load =3D virtio_ccw_dev_tmp_post_load, + .pre_save_errp =3D virtio_ccw_dev_tmp_pre_save, + .post_load_errp =3D virtio_ccw_dev_tmp_post_load, .fields =3D (const VMStateField[]) { VMSTATE_UINT16(config_vector, VirtioCcwDeviceTmp), VMSTATE_END_OF_LIST() @@ -99,7 +100,7 @@ const VMStateDescription vmstate_virtio_ccw_dev =3D { .name =3D "s390_virtio_ccw_dev", .version_id =3D 1, .minimum_version_id =3D 1, - .post_load =3D virtio_ccw_dev_post_load, + .post_load_errp =3D virtio_ccw_dev_post_load, .fields =3D (const VMStateField[]) { VMSTATE_CCW_DEVICE(parent_obj, VirtioCcwDevice), VMSTATE_PTR_TO_IND_ADDR(indicators, VirtioCcwDevice), @@ -107,7 +108,7 @@ const VMStateDescription vmstate_virtio_ccw_dev =3D { VMSTATE_PTR_TO_IND_ADDR(summary_indicator, VirtioCcwDevice), /* * Ugly hack because VirtIODevice does not migrate itself. - * This also makes legacy via vmstate_save_state possible. + * This also makes legacy via vmstate_save_vmsd possible. */ VMSTATE_WITH_TMP(VirtioCcwDevice, VirtioCcwDeviceTmp, vmstate_virtio_ccw_dev_tmp), --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694054; cv=none; d=zohomail.com; s=zohoarc; b=cFBjw4kzNbDIFSQJjB9Uk0a/W7ZxsVZ+MhjClEn2ZBbR8gWuidZKL9uBmwbAZE3SwGELPOsTpKtOsA91mgfyWQcs/pwxFa6PxGs6Oi5BTc35uWK2IDdJJjqF6Wqu4oR3ssz5JzyXrP8t67Ecdwz84PRwsFcTONCjokfsIIp476s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694054; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YrgMToP0NRwk8bp8EDG1ZziGYNNhT9TPc5zyFCqWwD0=; b=iqAGwRlOYvysR0ApiMf6wE9t1drRSdEHDp7a/D/RuKwzZgVYhPHSJ/ErntPnzKlBU2JicUT3VLmxKOo7oXbKGwXOrJXCRP+TMGF5Lc9LiQw0mEDwiQYyparMfYErNm7nDWZUXWMlB1lw6DyHgtBh8mZIs5wyCFDpXHe7/mXQUhY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178769405418948.79341732652699; Tue, 25 Aug 2026 14:40:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqy-0005na-Hg; Tue, 25 Aug 2026 17:38:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqw-0005lu-Pu; Tue, 25 Aug 2026 17:38:42 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqu-00051F-TD; Tue, 25 Aug 2026 17:38:42 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 42A5A80BF4; Wed, 26 Aug 2026 00:38:39 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-eBmCp7Dr; Wed, 26 Aug 2026 00:38:38 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693918; bh=YrgMToP0NRwk8bp8EDG1ZziGYNNhT9TPc5zyFCqWwD0=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=Vkp25B/AJo1qsMOBsxh8HviI8XL5H7is+gIXR8n9p1YmMD0ycPaHPVdVtm2f2X5cF iPEdyJ34CXBFtqjlB1WFdxGSW47m1Z9YSA8JBXo460AUMecIDJOU2bitI/CrUVqoZF hM6F05z2A83akZ09U6Hu3CHLqkIj4ZF1yJIH1IoQ= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Paolo Bonzini , Fam Zheng , Nicholas Piggin , Harsh Prateek Bora , Amit Machhiwal , qemu-ppc@nongnu.org (open list:sPAPR (pseries)) Subject: [PATCH 08/30] hw/scsi/spapr_vscsi: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:48 +0300 Message-ID: <20260825213811.3725682-9-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694056121158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/scsi/spapr_vscsi.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index b4c8f94d22a..5938a392b95 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -629,12 +629,11 @@ static void vscsi_save_request(QEMUFile *f, SCSIReque= st *sreq) { vscsi_req *req =3D sreq->hba_private; Error *local_err =3D NULL; - int rc; =20 assert(req->active); =20 - rc =3D vmstate_save_state(f, &vmstate_spapr_vscsi_req, req, NULL, &loc= al_err); - if (rc < 0) { + if (!vmstate_save_vmsd(f, &vmstate_spapr_vscsi_req, req, NULL, + &local_err)) { error_report_err(local_err); return; } @@ -647,7 +646,6 @@ static void *vscsi_load_request(QEMUFile *f, SCSIReques= t *sreq) SCSIBus *bus =3D sreq->bus; VSCSIState *s =3D VIO_SPAPR_VSCSI_DEVICE(bus->qbus.parent); vscsi_req *req; - int rc; Error *local_err =3D NULL; =20 assert(sreq->tag < VSCSI_REQ_LIMIT); @@ -655,8 +653,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIReques= t *sreq) assert(!req->active); =20 memset(req, 0, sizeof(*req)); - rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1, &local_= err); - if (rc) { + if (!vmstate_load_vmsd(f, &vmstate_spapr_vscsi_req, req, 1, &local_err= )) { fprintf(stderr, "VSCSI: failed loading request tag#%u\n", sreq->ta= g); error_report_err(local_err); return NULL; --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694039; cv=none; d=zohomail.com; s=zohoarc; b=E16i/x7vRxgnKnOaSE0WBoNQGAFoUnWBSGFm2apHOwmV+nX/vBkikUvZl9JmaFg9TcA8R80HfWYNy//XOyG9mtXV/FE94/++IwsgjE5le1nXSL5MDzQcpdScu+qKc6CDCzJpnpO9j/zv4PuwzT0pasGDOCrW7ZeA2+W1Mzmuk80= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694039; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=audUauMQ7mR1OoEWJhW5ZME203rf9Hd0Q7JXrwKu9EY=; b=Qcqjh26XK4RooaZcKzVq9L5q156HC1mZuxKiLEma5VQaS1iKyBQDMTGqmjeMIOKuKvkxUM1CiE9AUWapAsiHbv6sZEixudN5vpfxqSQNb2bcEtVeyVqdtd+CJx+VSBZ12USzVJcop0NsfvCHdmInuJNGw5Equv8rux/nE2QOZVk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694039413208.96017005109218; Tue, 25 Aug 2026 14:40:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyqz-0005oM-HS; Tue, 25 Aug 2026 17:38:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqx-0005mA-1A for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:43 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqv-00051b-F1 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:42 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 1976B80DC3; Wed, 26 Aug 2026 00:38:40 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-j8uGpPRU; Wed, 26 Aug 2026 00:38:39 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693919; bh=audUauMQ7mR1OoEWJhW5ZME203rf9Hd0Q7JXrwKu9EY=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=sBimIEo28IjzqOtf1k4pPNJPYuXGUu3bF+iGTQd8ssK482Kq5+/uMbAAcM4xwZcCC xjgVNBDycqZYX5v93Qjcvhs2U3uM/NboUkpRg2DKZFV4xPoDNklx3ZeZ+9MSx9rC1h cxBkLc+d/MtC8W36NjDqjNvBrbp1ToYRKRIJ2aNY= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Paolo Bonzini , Fam Zheng Subject: [PATCH 09/30] hw/scsi/scsi-bus.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:49 +0300 Message-ID: <20260825213811.3725682-10-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694040048158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/scsi/scsi-bus.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index deb43d5560e..d455c0b46b5 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -1888,18 +1888,19 @@ static void put_scsi_req(SCSIRequest *req, void *op= aque) } } =20 -static int put_scsi_requests(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool put_scsi_requests(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdes= c, + Error **errp) { SCSIDevice *s =3D pv; =20 scsi_device_for_each_req_sync(s, put_scsi_req, f); qemu_put_sbyte(f, 0); - return 0; + return true; } =20 -static int get_scsi_requests(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool get_scsi_requests(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { SCSIDevice *s =3D pv; SCSIBus *bus =3D DO_UPCAST(SCSIBus, qbus, s->qdev.parent_bus); @@ -1938,13 +1939,13 @@ static int get_scsi_requests(QEMUFile *f, void *pv,= size_t size, scsi_req_unref(req); } =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_scsi_requests =3D { .name =3D "scsi-requests", - .get =3D get_scsi_requests, - .put =3D put_scsi_requests, + .load =3D get_scsi_requests, + .save =3D put_scsi_requests, }; =20 static bool scsi_sense_state_needed(void *opaque) --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693953; cv=none; d=zohomail.com; s=zohoarc; b=beFdvK5otxM8R+AzfaNfYJoTdts3KFm/qif0GMnAbcVTfOggbIpq+cVg5qkVZsXwDpOBeWOvSJjeow+eKpND9VuDDvCX7n1DJMbRk8XmT7ifiE8DwnfyK9azKcQAS31qQhhKgPWxW0BbsDIeIWptcJO0IduTia1C6RFEhR3gGjE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693953; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=v2W1Ev9o02njg8c/xleyXHEUypY1szGPjue53/EGW+8=; b=IhUbMdXYp40fi1N2IRKc4aTSchk/295wdSQVz1pM3eRz/q5C+XRVbKE4Lr3N6GquJxVBOM1fyCrvAP38gfQupyA6i2pnhUA1vGRwxK5JKorsPBdX2gSMuJV2jd5MIrfZcULuC3NjXEuy1eMj3LoF2eZhQ8IZ4KP9ZjPmSmH2UuQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693952883876.249512329748; Tue, 25 Aug 2026 14:39:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr0-0005p4-2D; Tue, 25 Aug 2026 17:38:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqx-0005n6-Ul for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:43 -0400 Received: from forwardcorp1b.mail.yandex.net ([178.154.239.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqw-00051r-BB for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:43 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id F34DB80C05; Wed, 26 Aug 2026 00:38:40 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-k76Ud8fb; Wed, 26 Aug 2026 00:38:40 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693920; bh=v2W1Ev9o02njg8c/xleyXHEUypY1szGPjue53/EGW+8=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=NR0iEPq/AJCxWhIk/vAK+3hQaFFQNbMrbnHagDk3OHCbBQgJfBCOO4PUtiD1+Hcz+ FoKvgsK7AtN0X2PNQT2tEGwRzEdqA1WeOJn2PBk9Li9pDqi5IDl0Q9+hDJjNJdHy/g w0/QYu0y2sV1imni/nmvPssz1Swri0JaTrr+8Xik= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PATCH 10/30] hw/vfio/pci: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:50 +0300 Message-ID: <20260825213811.3725682-11-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.136; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693957016158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/vfio/pci.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 428ab2f0698..ec59c30495d 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3000,8 +3000,8 @@ static int vfio_pci_save_config(VFIODevice *vbasedev,= QEMUFile *f, Error **errp) { VFIOPCIDevice *vdev =3D container_of(vbasedev, VFIOPCIDevice, vbasedev= ); =20 - return vmstate_save_state(f, &vmstate_vfio_pci_config, vdev, NULL, - errp); + return vmstate_save_vmsd( + f, &vmstate_vfio_pci_config, vdev, NULL, errp) ? 0 : -EINVAL; } =20 static int vfio_pci_load_config(VFIODevice *vbasedev, QEMUFile *f) @@ -3009,18 +3009,16 @@ static int vfio_pci_load_config(VFIODevice *vbasede= v, QEMUFile *f) VFIOPCIDevice *vdev =3D container_of(vbasedev, VFIOPCIDevice, vbasedev= ); PCIDevice *pdev =3D PCI_DEVICE(vdev); pcibus_t old_addr[PCI_NUM_REGIONS - 1]; - int bar, ret; + int bar; Error *local_err =3D NULL; =20 for (bar =3D 0; bar < PCI_ROM_SLOT; bar++) { old_addr[bar] =3D pdev->io_regions[bar].addr; } =20 - ret =3D vmstate_load_state(f, &vmstate_vfio_pci_config, vdev, 1, - &local_err); - if (ret) { + if (!vmstate_load_vmsd(f, &vmstate_vfio_pci_config, vdev, 1, &local_er= r)) { error_report_err(local_err); - return ret; + return -EINVAL; } =20 vfio_pci_write_config(pdev, PCI_COMMAND, @@ -3044,7 +3042,7 @@ static int vfio_pci_load_config(VFIODevice *vbasedev,= QEMUFile *f) vfio_msix_enable(vdev); } =20 - return ret; + return 0; } =20 /* Transform from VFIODevice to VFIOPCIDevice. Return NULL if fails. */ --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694009; cv=none; d=zohomail.com; s=zohoarc; b=RWP9DFiXXyJVeAzetNEOzoa2qughlXRWxt0+fR3Td3lwHH9Aw9kV6BP3tspbiCxbP6mSGphV3RviossjLy4pKjC4B8Gx5i/yEochNY5DaGlFlby9ZpYV2K7wZo0QCPi3ZtlDfOSWFG+WTYFUp5Z6CLsrh34esWF96vCe4YXDvSQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694009; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7xut4V9uJ3hS49dZ2pwxsuX/aPSjisN0ILr5Fb+X2Lc=; b=RoF0Sd9xFlimJ2VUhrQTcW9ilw22cvusnn14k8LeTbRMQSjZHBwXmDnKjkx6Jc2z5M4xD/dAX8oBbOjl4oNf16YTxDyWFtDloeLGJxZ5/Pk9Lqn7vtsFz+Z7bqwnhdZ/f1JG06tDjxgMiKA4jUknOY9n7QhFTA4tXI4J005dX/Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694009206418.59128092948345; Tue, 25 Aug 2026 14:40:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr0-0005pI-Fa; Tue, 25 Aug 2026 17:38:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqz-0005oL-Ez for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:45 -0400 Received: from forwardcorp1b.mail.yandex.net ([178.154.239.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqx-00052V-7z for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:45 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id E17CE80BD7; Wed, 26 Aug 2026 00:38:41 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-Of8Wnvu5; Wed, 26 Aug 2026 00:38:41 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693921; bh=7xut4V9uJ3hS49dZ2pwxsuX/aPSjisN0ILr5Fb+X2Lc=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=rkC/fVGVdKtenWN47/0O2FEO2zxmrtQKKMtVB9tTCBkO6sJMdg6NkGp/P5uBb9YiR HsrnDomMUZ7QF/uI4YWDD2csw2AAgaG5LNr0FtcsPvued+byLNAGhx/KrfyyMZJhO0 KH37TG81DQKa+xDmp5KQ3o5keGr5IqJwgCdThRyM= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" Subject: [PATCH 11/30] hw/pci/pci: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:51 +0300 Message-ID: <20260825213811.3725682-12-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.136; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694009904158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/pci/pci.c | 58 ++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 76d006fa1d7..0f70f0f7af8 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -807,8 +807,9 @@ int pci_bus_numa_node(PCIBus *bus) return PCI_BUS_GET_CLASS(bus)->numa_node(bus); } =20 -static int get_pci_config_device(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_pci_config_device(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + Error **errp) { PCIDevice *s =3D container_of(pv, PCIDevice, config); uint8_t *config; @@ -821,12 +822,12 @@ static int get_pci_config_device(QEMUFile *f, void *p= v, size_t size, for (i =3D 0; i < size; ++i) { if ((config[i] ^ s->config[i]) & s->cmask[i] & ~s->wmask[i] & ~s->w1cmask[i]) { - error_report("%s: Bad config data: i=3D0x%x read: %x device: %= x " - "cmask: %x wmask: %x w1cmask:%x", __func__, - i, config[i], s->config[i], - s->cmask[i], s->wmask[i], s->w1cmask[i]); + error_setg(errp, "%s: Bad config data: i=3D0x%x read: %x devic= e: %x " + "cmask: %x wmask: %x w1cmask:%x", __func__, + i, config[i], s->config[i], + s->cmask[i], s->wmask[i], s->w1cmask[i]); g_free(config); - return -EINVAL; + return false; } } memcpy(s->config, config, size); @@ -840,28 +841,30 @@ static int get_pci_config_device(QEMUFile *f, void *p= v, size_t size, & PCI_COMMAND_MASTER); =20 g_free(config); - return 0; + return true; } =20 /* just put buffer */ -static int put_pci_config_device(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vm= desc) +static bool save_pci_config_device(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { const uint8_t **v =3D pv; assert(size =3D=3D pci_config_size(container_of(pv, PCIDevice, config)= )); qemu_put_buffer(f, *v, size); =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_pci_config =3D { .name =3D "pci config", - .get =3D get_pci_config_device, - .put =3D put_pci_config_device, + .load =3D load_pci_config_device, + .save =3D save_pci_config_device, }; =20 -static int get_pci_irq_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_pci_irq_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + Error **errp) { PCIDevice *s =3D container_of(pv, PCIDevice, irq_state); uint32_t irq_state[PCI_NUM_PINS]; @@ -869,9 +872,9 @@ static int get_pci_irq_state(QEMUFile *f, void *pv, siz= e_t size, for (i =3D 0; i < PCI_NUM_PINS; ++i) { irq_state[i] =3D qemu_get_be32(f); if (irq_state[i] !=3D 0x1 && irq_state[i] !=3D 0) { - fprintf(stderr, "irq state %d: must be 0 or 1.\n", - irq_state[i]); - return -EINVAL; + error_setg(errp, "irq state %d: must be 0 or 1.", + irq_state[i]); + return false; } } =20 @@ -879,11 +882,12 @@ static int get_pci_irq_state(QEMUFile *f, void *pv, s= ize_t size, pci_set_irq_state(s, i, irq_state[i]); } =20 - return 0; + return true; } =20 -static int put_pci_irq_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_pci_irq_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmde= sc, + Error **errp) { int i; PCIDevice *s =3D container_of(pv, PCIDevice, irq_state); @@ -892,13 +896,13 @@ static int put_pci_irq_state(QEMUFile *f, void *pv, s= ize_t size, qemu_put_be32(f, pci_irq_state(s, i)); } =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_pci_irq_state =3D { .name =3D "pci irq state", - .get =3D get_pci_irq_state, - .put =3D put_pci_irq_state, + .load =3D load_pci_irq_state, + .save =3D save_pci_irq_state, }; =20 static bool migrate_is_pcie(void *opaque, int version_id) @@ -911,17 +915,17 @@ static bool migrate_is_not_pcie(void *opaque, int ver= sion_id) return !pci_is_express((PCIDevice *)opaque); } =20 -static int pci_post_load(void *opaque, int version_id) +static bool pci_post_load(void *opaque, int version_id, Error **errp) { pcie_sriov_pf_post_load(opaque); - return 0; + return true; } =20 const VMStateDescription vmstate_pci_device =3D { .name =3D "PCIDevice", .version_id =3D 2, .minimum_version_id =3D 1, - .post_load =3D pci_post_load, + .post_load_errp =3D pci_post_load, .fields =3D (const VMStateField[]) { VMSTATE_INT32_POSITIVE_LE(version_id, PCIDevice), VMSTATE_BUFFER_UNSAFE_INFO_TEST(config, PCIDevice, --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694023; cv=none; d=zohomail.com; s=zohoarc; b=k/V4Rh1M7v7WPzdt/Vq7gI0UN/Uu4R7stl1IvfYenZRoexOutGSugZxGPLfXpaM6ByiJEvQg1T+Q716IlFo5abN/E96XtkpDO0VYbCEeIWmqvGyLnsO4Ef481+T7W/cS09WnC67KnkonZYJHweTnl61JE8gMdhNNdV2gynKi0Nw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694023; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vLlNeGxhkaOTLOWrbu3++IHaogXUp5T7e/JCST20a08=; b=GWh2Epw35no2M+SwRkpO4roAH8/twnzHsirq1Y7YUQgJyEt47Ve8ujGGxGlYZDc7MzW64sg5hDDw/ahWk47B5RYXbTM2CxjX7PtXmtL1X1XFFOs41zWsXu0S5ttPjqSOR1k2jC/6sEHdrc2wBy3SkSeVwGGyeJ0kr4O+1wFXfk4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694023118414.0518088151782; Tue, 25 Aug 2026 14:40:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr1-0005pw-RM; Tue, 25 Aug 2026 17:38:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqz-0005oN-IR for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:45 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqx-000531-Ua for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:45 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id A608380BF2; Wed, 26 Aug 2026 00:38:42 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-C6uiMCf3; Wed, 26 Aug 2026 00:38:42 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693922; bh=vLlNeGxhkaOTLOWrbu3++IHaogXUp5T7e/JCST20a08=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=KC5SoRNXONrzfgPgM3+Ingp3C+U4kMq9QBF2eTfslIn3/gd3I7N/5WA6GH3yP1Ui+ Vf2yMpWMmRh/TTPPNQakJ93zegUCnYAeMMyhg2kYniH6oTYYkgkxLdX7yo5y7iN7mo AofC8xQz4h1VaFmj/C82bKD0vlYnn+Nh6wFxWwjA= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" Subject: [PATCH 12/30] hw/pci/msix.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:52 +0300 Message-ID: <20260825213811.3725682-13-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694025962158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/pci/msix.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/hw/pci/msix.c b/hw/pci/msix.c index 1b23eaf1007..4dcb7c36770 100644 --- a/hw/pci/msix.c +++ b/hw/pci/msix.c @@ -685,25 +685,26 @@ void msix_unset_vector_notifiers(PCIDevice *dev) dev->msix_vector_poll_notifier =3D NULL; } =20 -static int put_msix_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool put_msix_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { msix_save(pv, f); =20 - return 0; + return true; } =20 -static int get_msix_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool get_msix_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { msix_load(pv, f); - return 0; + return true; } =20 static const VMStateInfo vmstate_info_msix =3D { .name =3D "msix state", - .get =3D get_msix_state, - .put =3D put_msix_state, + .load =3D get_msix_state, + .save =3D put_msix_state, }; =20 const VMStateDescription vmstate_msix =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694012; cv=none; d=zohomail.com; s=zohoarc; b=fRG4uoetjfiPXMptpltud9fkdk22bopbtMrjW4GDcxaMs/GUDjepIgjMIeayxr5YyQarMvFNkkvJt0Fjj1eUKyWzctqAhmcNqIvxeVI4L0L7ilzgKpOK78Eg4qS5fs2WwE8UNbS7Pl0zhA8UzoQu0AcIKF7xmbV9H+JVIEztusg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694012; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fm1O7sVTDL8aWS2MucI1ptgit5bHG785yNcUdbArR8g=; b=leNvCBbczR5oWVNXXB2rvLHaOkASmA+t0KGs00FPlH0CfPLrtk08m9nZ5YUq4oLUnFAB1c8WZXv5ua5UMI1Jl6IFjGxlAsL2ghgHn4reET3GMo5OiM4G7idNR5Gk2VXIOBPXmmfgM42k9HhIt3v/TSMGU/mmU/MByXv6ppxO+So= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694012513481.9035854322168; Tue, 25 Aug 2026 14:40:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr3-0005qR-1s; Tue, 25 Aug 2026 17:38:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr1-0005pK-17 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:47 -0400 Received: from forwardcorp1d.mail.yandex.net ([2a02:6b8:c41:1300:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyqz-00053K-FW for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:46 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 690A780DCD; Wed, 26 Aug 2026 00:38:43 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-oyDaBLAm; Wed, 26 Aug 2026 00:38:42 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693922; bh=fm1O7sVTDL8aWS2MucI1ptgit5bHG785yNcUdbArR8g=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=ILyOEWhFgaK4e+9LJUI/XH7xSsEznkh2SHCtfEM9ILs9U6eKYsl+CbDJKwHOFzEh9 plehWROqu5M0DK5Au7DJXJJSVrBr2Am2M4HABHjSnqTcUcIpjPuiHBhS0HHShq85uR 4vdqJkDMLKY154KvEh7CMxDS9YrJwyQDt8Th5+sM= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" Subject: [PATCH 13/30] hw/pci/shpc.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:53 +0300 Message-ID: <20260825213811.3725682-14-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c41:1300:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694013967158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/pci/shpc.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c index 938602866d7..cdd2d0564ea 100644 --- a/hw/pci/shpc.c +++ b/hw/pci/shpc.c @@ -758,31 +758,33 @@ void shpc_cap_write_config(PCIDevice *d, uint32_t add= r, uint32_t val, int l) shpc_cap_update_dword(d); } =20 -static int shpc_save(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool shpc_save(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { PCIDevice *d =3D container_of(pv, PCIDevice, shpc); qemu_put_buffer(f, d->shpc->config, SHPC_SIZEOF(d)); =20 - return 0; + return true; } =20 -static int shpc_load(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool shpc_load(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { PCIDevice *d =3D container_of(pv, PCIDevice, shpc); int ret =3D qemu_get_buffer(f, d->shpc->config, SHPC_SIZEOF(d)); if (ret !=3D SHPC_SIZEOF(d)) { - return -EINVAL; + error_setg(errp, "Failed to load SHPC config"); + return false; } /* Make sure we don't lose notifications. An extra interrupt is harmle= ss. */ d->shpc->msi_requested =3D 0; shpc_interrupt_update(d); - return 0; + return true; } =20 const VMStateInfo shpc_vmstate_info =3D { .name =3D "shpc", - .get =3D shpc_load, - .put =3D shpc_save, + .load =3D shpc_load, + .save =3D shpc_save, }; --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694032; cv=none; d=zohomail.com; s=zohoarc; b=aTLl471JZY/CAqvHO2ohMWtsHUWmVa2uT16nCKESci/NyQw0MHx6mHs4QXA5C3vJJ5XsP3i9mAKPPWyl2/lhGXlf7c+1xv9iXWWSX71dg8ABDPbJf+NCHnIGKnIZGQiOZT2qkJQR3o7apTmzvqVtJtR/ykpM6ur6Mk9JJLwOkfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694032; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/AXpb6OUWSDqBackO6RIHEDCxosPL8T5bL7ACTRrjKY=; b=Kcb5UMJxckdD0GT4SZtMUh2KHjE2gDd6cyc7Abw/59rA5y5kRLfx5iA3Eg2YJt6w6UvKhUcJEnlak8AbQ1BgNyp0410iEYLZqY6Vnj76tFpId+zeOlg9FqFJLTQ4/NqNz9xjk1v+y70ayd7eODeKnCZcwjKRGDhVClLOZWyU5rQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694032984789.5963309099553; Tue, 25 Aug 2026 14:40:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr4-0005qu-6H; Tue, 25 Aug 2026 17:38:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr2-0005px-4t for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:48 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr0-00053y-04 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:47 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id B2B7180DEE; Wed, 26 Aug 2026 00:38:44 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-ucqWFj1u; Wed, 26 Aug 2026 00:38:43 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693923; bh=/AXpb6OUWSDqBackO6RIHEDCxosPL8T5bL7ACTRrjKY=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=hCE9R6WY8GWoh7iOM0pzuoaVNgKrLaf3+NJDMOsV88d6UleIuJ3JdnmXzGsd3M579 gIeN+LWdRod34DMNN9paDdFNniOMXhZA2HO0jTZ76N2fzJOUScqqabhLAHnPTzTvlg W+mhB9yZBvqviq/WKdYCOrpPxGJsq8yNxuWxm5M8= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko Subject: [PATCH 14/30] hw/display/virtio-gpu: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:54 +0300 Message-ID: <20260825213811.3725682-15-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694034389158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/display/virtio-gpu.c | 99 ++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index fbb6fec7a0a..1af640accdc 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1308,13 +1308,13 @@ static const VMStateDescription vmstate_virtio_gpu_= scanouts =3D { }, }; =20 -static int virtio_gpu_save(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool virtio_gpu_save(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { VirtIOGPU *g =3D opaque; struct virtio_gpu_simple_resource *res; - Error *err =3D NULL; - int i, ret; + int i; =20 /* in 2d mode we should never find unprocessed commands here */ assert(QTAILQ_EMPTY(&g->cmdq)); @@ -1337,12 +1337,7 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque= , size_t size, } qemu_put_be32(f, 0); /* end of list */ =20 - ret =3D vmstate_save_state(f, &vmstate_virtio_gpu_scanouts, g, NULL, - &err); - if (ret < 0) { - error_report_err(err); - } - return ret; + return vmstate_save_vmsd(f, &vmstate_virtio_gpu_scanouts, g, NULL, err= p); } =20 static bool virtio_gpu_load_restore_mapping(VirtIOGPU *g, @@ -1374,14 +1369,13 @@ static bool virtio_gpu_load_restore_mapping(VirtIOG= PU *g, return true; } =20 -static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool virtio_gpu_load(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { VirtIOGPU *g =3D opaque; - Error *err =3D NULL; struct virtio_gpu_simple_resource *res; uint32_t resource_id, pformat, hostmem, rowstride_bytes; - int i, ret; + int i; =20 g->hostmem =3D 0; =20 @@ -1389,7 +1383,8 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque,= size_t size, while (resource_id !=3D 0) { res =3D virtio_gpu_find_resource(g, resource_id); if (res) { - return -EINVAL; + error_setg(errp, "Failed to find resource %" PRIu32, resource_= id); + return false; } =20 res =3D g_new0(struct virtio_gpu_simple_resource, 1); @@ -1402,14 +1397,16 @@ static int virtio_gpu_load(QEMUFile *f, void *opaqu= e, size_t size, /* allocate */ pformat =3D virtio_gpu_get_pixman_format(res->format); if (!pformat) { + error_setg(errp, "Unknown pixman format %" PRIu32, res->format= ); g_free(res); - return -EINVAL; + return false; } =20 if (!calc_image_hostmem(pformat, res->width, res->height, &hostmem, &rowstride_bytes)) { g_free(res); - return -EINVAL; + error_setg(errp, "Failed to calculate image hostmem"); + return false; } res->hostmem =3D hostmem; if (!qemu_pixman_image_new_shareable(&res->image, @@ -1419,10 +1416,9 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque= , size_t size, res->width, res->height, rowstride_bytes, - &err)) { - warn_report_err(err); + errp)) { g_free(res); - return -EINVAL; + return false; } =20 res->addrs =3D g_try_new(uint64_t, res->iov_cnt); @@ -1432,7 +1428,8 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque,= size_t size, g_free(res->addrs); g_free(res->iov); g_free(res); - return -EINVAL; + error_setg(errp, "Failed to allocate iov arrays"); + return false; } =20 /* read data */ @@ -1446,22 +1443,20 @@ static int virtio_gpu_load(QEMUFile *f, void *opaqu= e, size_t size, if (!virtio_gpu_load_restore_mapping(g, res)) { pixman_image_unref(res->image); g_free(res); - return -EINVAL; + error_setg(errp, "Failed to load restore mapping"); + return false; } =20 resource_id =3D qemu_get_be32(f); } =20 /* load & apply scanout state */ - ret =3D vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1, &err= ); - if (ret < 0) { - error_report_err(err); - } - return ret; + return vmstate_load_vmsd(f, &vmstate_virtio_gpu_scanouts, g, 1, errp); } =20 -static int virtio_gpu_blob_save(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmd= esc) +static bool virtio_gpu_blob_save(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vm= desc, + Error **errp) { VirtIOGPU *g =3D opaque; struct virtio_gpu_simple_resource *res; @@ -1485,11 +1480,11 @@ static int virtio_gpu_blob_save(QEMUFile *f, void *= opaque, size_t size, } qemu_put_be32(f, 0); /* end of list */ =20 - return 0; + return true; } =20 -static int virtio_gpu_blob_load(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool virtio_gpu_blob_load(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { VirtIOGPU *g =3D opaque; struct virtio_gpu_simple_resource *res; @@ -1500,7 +1495,8 @@ static int virtio_gpu_blob_load(QEMUFile *f, void *op= aque, size_t size, while (resource_id !=3D 0) { res =3D virtio_gpu_find_resource(g, resource_id); if (res) { - return -EINVAL; + error_setg(errp, "Failed to find resource %" PRIu32, resource_= id); + return false; } =20 res =3D g_new0(struct virtio_gpu_simple_resource, 1); @@ -1514,7 +1510,8 @@ static int virtio_gpu_blob_load(QEMUFile *f, void *op= aque, size_t size, g_free(res->addrs); g_free(res->iov); g_free(res); - return -EINVAL; + error_setg(errp, "Failed to allocate iov arrays"); + return false; } =20 /* read data */ @@ -1525,15 +1522,19 @@ static int virtio_gpu_blob_load(QEMUFile *f, void *= opaque, size_t size, =20 if (res->iov_cnt > 0 && iov_size(res->iov, res->iov_cnt) < res->blob_size) { + error_setg(errp, "iov size %" PRIu64 " < blob_size %" PRIu64, + (uint64_t)iov_size(res->iov, res->iov_cnt), + res->blob_size); g_free(res->addrs); g_free(res->iov); g_free(res); - return -EINVAL; + return false; } =20 if (!virtio_gpu_load_restore_mapping(g, res)) { g_free(res); - return -EINVAL; + error_setg(errp, "Failed to load restore mapping"); + return false; } =20 virtio_gpu_init_udmabuf(res); @@ -1541,10 +1542,10 @@ static int virtio_gpu_blob_load(QEMUFile *f, void *= opaque, size_t size, resource_id =3D qemu_get_be32(f); } =20 - return 0; + return true; } =20 -static int virtio_gpu_post_load(void *opaque, int version_id) +static bool virtio_gpu_post_load(void *opaque, int version_id, Error **err= p) { VirtIOGPU *g =3D opaque; struct virtio_gpu_scanout *scanout; @@ -1559,7 +1560,9 @@ static int virtio_gpu_post_load(void *opaque, int ver= sion_id) =20 res =3D virtio_gpu_find_resource(g, scanout->resource_id); if (!res) { - return -EINVAL; + error_setg(errp, "Failed to find resource %" PRIu32, + scanout->resource_id); + return false; } =20 if (scanout->fb.format !=3D 0) { @@ -1572,12 +1575,14 @@ static int virtio_gpu_post_load(void *opaque, int v= ersion_id) }; =20 if (!virtio_gpu_do_set_scanout(g, i, &scanout->fb, res, &r, &e= rror)) { - return -EINVAL; + error_setg(errp, "Failed to set scanout"); + return false; } } else { /* legacy v1 migration support */ if (!res->image) { - return -EINVAL; + error_setg(errp, "No image"); + return false; } scanout->ds =3D qemu_create_displaysurface_pixman(res->image); qemu_displaysurface_set_share_handle(scanout->ds, res->share_h= andle, 0); @@ -1591,7 +1596,7 @@ static int virtio_gpu_post_load(void *opaque, int ver= sion_id) res->scanout_bitmask |=3D (1 << i); } =20 - return 0; + return true; } =20 void virtio_gpu_device_realize(DeviceState *qdev, Error **errp) @@ -1777,8 +1782,8 @@ const VMStateDescription vmstate_virtio_gpu_blob_stat= e =3D { .name =3D "virtio-gpu/blob", .info =3D &(const VMStateInfo) { .name =3D "blob", - .get =3D virtio_gpu_blob_load, - .put =3D virtio_gpu_blob_save, + .load =3D virtio_gpu_blob_load, + .save =3D virtio_gpu_blob_save, }, .flags =3D VMS_SINGLE, } /* device */, @@ -1804,8 +1809,8 @@ static const VMStateDescription vmstate_virtio_gpu = =3D { .name =3D "virtio-gpu", .info =3D &(const VMStateInfo) { .name =3D "virtio-gpu", - .get =3D virtio_gpu_load, - .put =3D virtio_gpu_save, + .load =3D virtio_gpu_load, + .save =3D virtio_gpu_save, }, .flags =3D VMS_SINGLE, } /* device */, @@ -1815,7 +1820,7 @@ static const VMStateDescription vmstate_virtio_gpu = =3D { &vmstate_virtio_gpu_blob_state, NULL }, - .post_load =3D virtio_gpu_post_load, + .post_load_errp =3D virtio_gpu_post_load, }; =20 static const Property virtio_gpu_properties[] =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694059; cv=none; d=zohomail.com; s=zohoarc; b=e/w0X/yjU3Iqd3re2fpGjJL5E26GmmK0pbCB3ooCN7OL/909+P570j2R0I8ZqHH/nqFH43zo0ERLLDEOLe9OEv3XrTNBYPmBpQqKA4MZGJ8NtJ6AR7G5pFNwX45HBGaO2myvbU4q1PkIhoEiJrU1uo1eRNlLTvkTHs6azBAZNDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694059; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WaO6mGJnd0uh3kBRMN24TFmwKauhWEuTiFj3VFLgfHQ=; b=FJdjVPpBN/v8lDCXibameevbkoskBL303BOVIrqErUqxKXVXcB2noA6B32YqgXxi6fmR1AiBiXAHEqLhL2/OOtRd2VWXhaBdTESEn78UFVvtIeXDfbncdYZUuI+IgW8CL/D1fWjeO9qveq21tPDMw5854AduYZ0PE/thqWwodi0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694059833184.09387998176123; Tue, 25 Aug 2026 14:40:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr5-0005rb-J6; Tue, 25 Aug 2026 17:38:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr4-0005qq-1F for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:50 -0400 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr1-00054L-JM for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:49 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id C9717C0962; Wed, 26 Aug 2026 00:38:45 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-vckao7wX; Wed, 26 Aug 2026 00:38:44 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693924; bh=WaO6mGJnd0uh3kBRMN24TFmwKauhWEuTiFj3VFLgfHQ=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=o6eqIWzIwMYmhhtA/GsKaDrIHZ+fMvTZ8V2/5o9Veggcg6Gyb6LLwqfHP1mAunEn9 +aUaqlfO8TdFzHoY5uEduyX9XKeT6EYWGKlPkNOCICFkd0u8LHWJumIFa75eatx09o UqOx/yvEImvUDa1Kr5AXEmQZ6KYMe2GS59X6Xd5I= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Michael S. Tsirkin" , Jason Wang Subject: [PATCH 15/30] hw/net/virtio-net.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:55 +0300 Message-ID: <20260825213811.3725682-16-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694062114158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/net/virtio-net.c | 133 ++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 814b99a43d2..a48c87e2453 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3198,7 +3198,8 @@ static void virtio_net_get_features(VirtIODevice *vde= v, uint64_t *features, } } =20 -static int virtio_net_post_load_device(void *opaque, int version_id) +static bool virtio_net_post_load_device(void *opaque, int version_id, + Error **errp) { VirtIONet *n =3D opaque; VirtIODevice *vdev =3D VIRTIO_DEVICE(n); @@ -3261,7 +3262,7 @@ static int virtio_net_post_load_device(void *opaque, = int version_id) } =20 virtio_net_commit_rss_config(n); - return 0; + return true; } =20 static int virtio_net_post_load_virtio(VirtIODevice *vdev) @@ -3327,7 +3328,7 @@ struct VirtIONetMigTmp { * pointer and count and also validate the count. */ =20 -static int virtio_net_tx_waiting_pre_save(void *opaque) +static bool virtio_net_tx_waiting_pre_save(void *opaque, Error **errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 @@ -3337,30 +3338,31 @@ static int virtio_net_tx_waiting_pre_save(void *opa= que) tmp->curr_queue_pairs_1 =3D 0; } =20 - return 0; + return true; } =20 -static int virtio_net_tx_waiting_pre_load(void *opaque) +static bool virtio_net_tx_waiting_pre_load(void *opaque, Error **errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 /* Reuse the pointer setup from save */ - virtio_net_tx_waiting_pre_save(opaque); + /* TODO: handle the error in a follow-up patch */ + virtio_net_tx_waiting_pre_save(opaque, NULL); =20 if (tmp->parent->curr_queue_pairs > tmp->parent->max_queue_pairs) { - error_report("virtio-net: curr_queue_pairs %x > max_queue_pairs %x= ", + error_setg(errp, "virtio-net: curr_queue_pairs %x > max_queue_pair= s %x", tmp->parent->curr_queue_pairs, tmp->parent->max_queue_pairs); =20 - return -EINVAL; + return false; } =20 - return 0; /* all good */ + return true; } =20 static const VMStateDescription vmstate_virtio_net_tx_waiting =3D { .name =3D "virtio-net-tx_waiting", - .pre_load =3D virtio_net_tx_waiting_pre_load, - .pre_save =3D virtio_net_tx_waiting_pre_save, + .pre_load_errp =3D virtio_net_tx_waiting_pre_load, + .pre_save_errp =3D virtio_net_tx_waiting_pre_save, .fields =3D (const VMStateField[]) { VMSTATE_STRUCT_VARRAY_POINTER_UINT16(vqs_1, struct VirtIONetMigTmp, curr_queue_pairs_1, @@ -3373,31 +3375,31 @@ static const VMStateDescription vmstate_virtio_net_= tx_waiting =3D { /* the 'has_ufo' flag is just tested; if the incoming stream has the * flag set we need to check that we have it */ -static int virtio_net_ufo_post_load(void *opaque, int version_id) +static bool virtio_net_ufo_post_load(void *opaque, int version_id, Error *= *errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 if (tmp->has_ufo && !peer_has_ufo(tmp->parent)) { - error_report("virtio-net: saved image requires TUN_F_UFO support"); - return -EINVAL; + error_setg(errp, "virtio-net: saved image requires TUN_F_UFO suppo= rt"); + return false; } =20 - return 0; + return true; } =20 -static int virtio_net_ufo_pre_save(void *opaque) +static bool virtio_net_ufo_pre_save(void *opaque, Error **errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 tmp->has_ufo =3D tmp->parent->has_ufo; =20 - return 0; + return true; } =20 static const VMStateDescription vmstate_virtio_net_has_ufo =3D { .name =3D "virtio-net-ufo", - .post_load =3D virtio_net_ufo_post_load, - .pre_save =3D virtio_net_ufo_pre_save, + .post_load_errp =3D virtio_net_ufo_post_load, + .pre_save_errp =3D virtio_net_ufo_pre_save, .fields =3D (const VMStateField[]) { VMSTATE_UINT8(has_ufo, struct VirtIONetMigTmp), VMSTATE_END_OF_LIST() @@ -3407,38 +3409,39 @@ static const VMStateDescription vmstate_virtio_net_= has_ufo =3D { /* the 'has_vnet_hdr' flag is just tested; if the incoming stream has the * flag set we need to check that we have it */ -static int virtio_net_vnet_post_load(void *opaque, int version_id) +static bool virtio_net_vnet_post_load(void *opaque, int version_id, + Error **errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 if (tmp->has_vnet_hdr && !peer_has_vnet_hdr(tmp->parent)) { - error_report("virtio-net: saved image requires vnet_hdr=3Don"); - return -EINVAL; + error_setg(errp, "virtio-net: saved image requires vnet_hdr=3Don"); + return false; } =20 - return 0; + return true; } =20 -static int virtio_net_vnet_pre_save(void *opaque) +static bool virtio_net_vnet_pre_save(void *opaque, Error **errp) { struct VirtIONetMigTmp *tmp =3D opaque; =20 tmp->has_vnet_hdr =3D tmp->parent->has_vnet_hdr; =20 - return 0; + return true; } =20 static const VMStateDescription vmstate_virtio_net_has_vnet =3D { .name =3D "virtio-net-vnet", - .post_load =3D virtio_net_vnet_post_load, - .pre_save =3D virtio_net_vnet_pre_save, + .post_load_errp =3D virtio_net_vnet_post_load, + .pre_save_errp =3D virtio_net_vnet_pre_save, .fields =3D (const VMStateField[]) { VMSTATE_UINT32(has_vnet_hdr, struct VirtIONetMigTmp), VMSTATE_END_OF_LIST() }, }; =20 -static int virtio_net_rss_post_load(void *opaque, int version_id) +static bool virtio_net_rss_post_load(void *opaque, int version_id, Error *= *errp) { VirtIONet *n =3D VIRTIO_NET(opaque); =20 @@ -3447,13 +3450,13 @@ static int virtio_net_rss_post_load(void *opaque, i= nt version_id) } =20 if (!virtio_net_rss_indirections_len_valid(n->rss_data.indirections_le= n)) { - error_report("virtio-net: saved image has invalid RSS " - "indirections_len: %u", - n->rss_data.indirections_len); - return -EINVAL; + error_setg(errp, "virtio-net: saved image has invalid RSS " + "indirections_len: %u", + n->rss_data.indirections_len); + return false; } =20 - return 0; + return true; } =20 static bool virtio_net_rss_needed(void *opaque) @@ -3465,7 +3468,7 @@ static const VMStateDescription vmstate_virtio_net_rs= s =3D { .name =3D "virtio-net-device/rss", .version_id =3D 2, .minimum_version_id =3D 1, - .post_load =3D virtio_net_rss_post_load, + .post_load_errp =3D virtio_net_rss_post_load, .needed =3D virtio_net_rss_needed, .fields =3D (const VMStateField[]) { VMSTATE_BOOL(rss_data.enabled, VirtIONet), @@ -3507,61 +3510,57 @@ static struct vhost_dev *virtio_net_get_vhost(VirtI= ODevice *vdev) return &net->dev; } =20 -static int vhost_user_net_save_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, - JSONWriter *vmdesc) +static bool vhost_user_net_save_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { + ERRP_GUARD(); VirtIONet *n =3D pv; VirtIODevice *vdev =3D VIRTIO_DEVICE(n); struct vhost_dev *vhdev; - Error *local_error =3D NULL; int ret; =20 vhdev =3D virtio_net_get_vhost(vdev); if (vhdev =3D=3D NULL) { - error_reportf_err(local_error, - "Error getting vhost back-end of %s device %s: ", - vdev->name, vdev->parent_obj.canonical_path); - return -1; + error_setg(errp, "Error getting vhost back-end of %s device %s", + vdev->name, vdev->parent_obj.canonical_path); + return false; } =20 - ret =3D vhost_save_backend_state(vhdev, f, &local_error); + ret =3D vhost_save_backend_state(vhdev, f, errp); if (ret < 0) { - error_reportf_err(local_error, - "Error saving back-end state of %s device %s: ", - vdev->name, vdev->parent_obj.canonical_path); - return ret; + error_prepend(errp, "Error saving back-end state of %s device %s: = ", + vdev->name, vdev->parent_obj.canonical_path); + return false; } =20 - return 0; + return true; } =20 -static int vhost_user_net_load_state(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool vhost_user_net_load_state(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **e= rrp) { + ERRP_GUARD(); VirtIONet *n =3D pv; VirtIODevice *vdev =3D VIRTIO_DEVICE(n); struct vhost_dev *vhdev; - Error *local_error =3D NULL; int ret; =20 vhdev =3D virtio_net_get_vhost(vdev); if (vhdev =3D=3D NULL) { - error_reportf_err(local_error, - "Error getting vhost back-end of %s device %s: ", - vdev->name, vdev->parent_obj.canonical_path); - return -1; + error_setg(errp, "Error getting vhost back-end of %s device %s", + vdev->name, vdev->parent_obj.canonical_path); + return false; } =20 - ret =3D vhost_load_backend_state(vhdev, f, &local_error); + ret =3D vhost_load_backend_state(vhdev, f, errp); if (ret < 0) { - error_reportf_err(local_error, - "Error loading back-end state of %s device %s: = ", - vdev->name, vdev->parent_obj.canonical_path); - return ret; + error_prepend(errp, "Error loading back-end state of %s device %s:= ", + vdev->name, vdev->parent_obj.canonical_path); + return false; } =20 - return 0; + return true; } =20 static bool vhost_user_net_is_internal_migration(void *opaque) @@ -3587,8 +3586,8 @@ static const VMStateDescription vhost_user_net_backen= d_state =3D { .name =3D "backend", .info =3D &(const VMStateInfo) { .name =3D "virtio-net vhost-user backend state", - .get =3D vhost_user_net_load_state, - .put =3D vhost_user_net_save_state, + .load =3D vhost_user_net_load_state, + .save =3D vhost_user_net_save_state, }, }, VMSTATE_END_OF_LIST() @@ -3599,7 +3598,7 @@ static const VMStateDescription vmstate_virtio_net_de= vice =3D { .name =3D "virtio-net-device", .version_id =3D VIRTIO_NET_VM_VERSION, .minimum_version_id =3D VIRTIO_NET_VM_VERSION, - .post_load =3D virtio_net_post_load_device, + .post_load_errp =3D virtio_net_post_load_device, .fields =3D (const VMStateField[]) { VMSTATE_UINT8_ARRAY(mac, VirtIONet, ETH_ALEN), VMSTATE_STRUCT_POINTER(vqs, VirtIONet, @@ -4169,7 +4168,7 @@ static void virtio_net_instance_init(Object *obj) ebpf_rss_init(&n->ebpf_rss); } =20 -static int virtio_net_pre_save(void *opaque) +static bool virtio_net_pre_save(void *opaque, Error **errp) { VirtIONet *n =3D opaque; =20 @@ -4177,7 +4176,7 @@ static int virtio_net_pre_save(void *opaque) * it might keep writing to memory. */ assert(!n->vhost_started); =20 - return 0; + return true; } =20 static bool primary_unplug_pending(void *opaque) @@ -4210,7 +4209,7 @@ static const VMStateDescription vmstate_virtio_net = =3D { VMSTATE_VIRTIO_DEVICE, VMSTATE_END_OF_LIST() }, - .pre_save =3D virtio_net_pre_save, + .pre_save_errp =3D virtio_net_pre_save, .dev_unplug_pending =3D dev_unplug_pending, }; =20 --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694036; cv=none; d=zohomail.com; s=zohoarc; b=erFfxVa8VutMRtYV8GWp1gvLq2aTsj3iwCr6cB/j8NCjp5HwUdyiHIS8v/YCmmwNKQcm1oynwdytn5dvTHMyXMfwZiYVZizbhSIJAnCM6U7gqn0gNLrv+5TyjtrUCJrES8wr5qOzMxxpSEBnW2BqzTFt0TjutHiZXfmm/IPlxCw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694036; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=776MHaLpzpLJ2Q79VM9JksJjKGqEEXxmSC5DyTv3s1k=; b=iJRRwqgQEWztQ0dLI4wCR0njfK4M0+F5E5F7aebyOxsZT+Tw940ADfUhYVaqHmtV36KgiuoxDejXCo2ofNkzO8LHUxiLb64sk7OTPCvgGnKZIsEN+xewGhQRD0BfxS9MuPdbA01s0gFkxTQEPUBvmZaDC1jCAhh1AHsPdNZIgGg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694036742158.92037810562795; Tue, 25 Aug 2026 14:40:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr4-0005r2-Ks; Tue, 25 Aug 2026 17:38:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr3-0005qT-JJ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:49 -0400 Received: from forwardcorp1d.mail.yandex.net ([2a02:6b8:c41:1300:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr2-00054W-2Q for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:49 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id CCC3C80DEA; Wed, 26 Aug 2026 00:38:46 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-eEPKqYsL; Wed, 26 Aug 2026 00:38:46 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693926; bh=776MHaLpzpLJ2Q79VM9JksJjKGqEEXxmSC5DyTv3s1k=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=CWpaBuch9WzurdxvSTs5Dw4mnHADrSue5ptUUk6CBglDVjtmrT+pFFhkBH4arN9hA KO+oEASarSq/SDfsBharVT1D3AmnyGTwRSrO6DHurMiTcSiE5LHw8ESJXB4qN0tKQf zymA01CeXdzQdXHXh1bqgNab9PC7I/+Us0xEWoGc= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Stefan Weil Subject: [PATCH 16/30] hw/nvram/eeprom93xx.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:56 +0300 Message-ID: <20260825213811.3725682-17-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c41:1300:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694038435158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/nvram/eeprom93xx.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c index 73b3d248d44..de689322567 100644 --- a/hw/nvram/eeprom93xx.c +++ b/hw/nvram/eeprom93xx.c @@ -95,28 +95,29 @@ struct _eeprom_t { This is a Big hack, but it is how the old state did it. */ =20 -static int get_uint16_from_uint8(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool get_uint16_from_uint8(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { uint16_t *v =3D pv; *v =3D qemu_get_ubyte(f); - return 0; + return true; } =20 -static int put_unused(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool put_unused(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { fprintf(stderr, "uint16_from_uint8 is used only for backwards compatib= ility.\n"); fprintf(stderr, "Never should be used to write a new state.\n"); exit(0); =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_hack_uint16_from_uint8 =3D { .name =3D "uint16_from_uint8", - .get =3D get_uint16_from_uint8, - .put =3D put_unused, + .load =3D get_uint16_from_uint8, + .save =3D put_unused, }; =20 #define VMSTATE_UINT16_HACK_TEST(_f, _s, _t) \ --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694002; cv=none; d=zohomail.com; s=zohoarc; b=dweSuwyaI5d0KzsA6L6RK96jQ77oQjuSm+26MCcEsyH/xFHQ62iBd9WhefwgGbs7yqsCB1I3olbr/X0zr1uVxwTq8aSTJtQaAbpTZYNByZdT1NpNzwvsRBGS0L7UKWLdJqQvcoC60t5vFVzc1hpsHlMicnR/LFMuyWmJtT9bIco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694002; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7QF5vpGv0kNB45S5zo/EW92SXsCJSbUYtMxNVMANnPY=; b=S7SR4mJ7p8dISyOuLKIHF1M1YWxs6m/kznhghW1pWQ+zkU4gWj4h6JX3UgU95HjmbgqWSlsHAFwCbYQ/Sx4zc7W/6fui8wGbMpao74Ke3bjpeUy4PuW3t1QJL8tw+wMVg9PWj6htwKmmXiz4It3xeHf8KbfaVIm+OH6R86yfGRM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694002771605.1446239829032; Tue, 25 Aug 2026 14:40:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr6-0005s5-W2; Tue, 25 Aug 2026 17:38:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr4-0005r4-QZ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:50 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr3-00054i-69 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:50 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id DC5C380DEB; Wed, 26 Aug 2026 00:38:47 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-dW0sjzhz; Wed, 26 Aug 2026 00:38:46 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693926; bh=7QF5vpGv0kNB45S5zo/EW92SXsCJSbUYtMxNVMANnPY=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=JM7moSJO5u2t6w03bc4mWgoJTZPfYi19RFAdjFaiWctT5IChFZeO52xjKZpygtQz6 C6/79nVjcs7lQ07Aw0z+5uyXA3mezrfzy8t/llZ/I6YIxcnTLRjq09KxhlIPGbQffU Slf1SVPEzbED2R4lLdzNekI6IOvUfZ9UId46r1vg= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Gerd Hoffmann Subject: [PATCH 17/30] hw/nvram/fw_cfg.c: use new migration APIs Date: Wed, 26 Aug 2026 00:37:57 +0300 Message-ID: <20260825213811.3725682-18-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694003992158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/nvram/fw_cfg.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index b057d870c00..5f67f5ff618 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -565,27 +565,28 @@ static void fw_cfg_reset(DeviceState *d) Or we broke compatibility in the state, or we can't use struct tm */ =20 -static int get_uint32_as_uint16(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool get_uint32_as_uint16(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { uint32_t *v =3D pv; *v =3D qemu_get_be16(f); - return 0; + return true; } =20 -static int put_unused(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool put_unused(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { fprintf(stderr, "uint32_as_uint16 is only used for backward compatibil= ity.\n"); fprintf(stderr, "This functions shouldn't be called.\n"); =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_hack_uint32_as_uint16 =3D { .name =3D "int32_as_uint16", - .get =3D get_uint32_as_uint16, - .put =3D put_unused, + .load =3D get_uint32_as_uint16, + .save =3D put_unused, }; =20 #define VMSTATE_UINT16_HACK(_f, _s, _t) = \ @@ -631,7 +632,8 @@ static void fw_cfg_update_mr(FWCfgState *s, uint16_t ke= y, size_t size) memory_region_ram_resize(mr, size, &error_abort); } =20 -static int fw_cfg_acpi_mr_restore_post_load(void *opaque, int version_id) +static bool fw_cfg_acpi_mr_restore_post_load(void *opaque, int version_id, + Error **errp) { FWCfgState *s =3D opaque; int i, index; @@ -650,7 +652,7 @@ static int fw_cfg_acpi_mr_restore_post_load(void *opaqu= e, int version_id) } } =20 - return 0; + return true; } =20 static const VMStateDescription vmstate_fw_cfg_dma =3D { @@ -667,7 +669,7 @@ static const VMStateDescription vmstate_fw_cfg_acpi_mr = =3D { .version_id =3D 1, .minimum_version_id =3D 1, .needed =3D fw_cfg_acpi_mr_restore, - .post_load =3D fw_cfg_acpi_mr_restore_post_load, + .post_load_errp =3D fw_cfg_acpi_mr_restore_post_load, .fields =3D (const VMStateField[]) { VMSTATE_UINT64(table_mr_size, FWCfgState), VMSTATE_UINT64(linker_mr_size, FWCfgState), --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694057; cv=none; d=zohomail.com; s=zohoarc; b=N4a7rAsb/QIJFqol53fikjD7UUo1mPp9yAGw0kMCd53zj55chXoCbs9zF0EfJ3LTwqHw0rXnpBldzK+eOif1+TSArR9MHQUrXXVi1/2FiyW/4sU3LCgeRUM11mGkvNPnNlB8wDlmEneqphSA4qQImrxsbh/o8pmBPTB98jLLdII= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694057; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BQHD+htt80RuZlwxjLMP/6d874aU12YAehXceZl63Tk=; b=VFmlfV12DCOMWeU8P+PKmvv6grvSuZUw6RKM/mFhtKeyhNQkHzE++Tb9v9uWR1uTiwEMlqpgxMx9V2joh+ifX48Ipx2lpYx2McnP8828SGH68keTUpJ6SEKzmQQMQZBd+GGfSKNse+kknP1wfgKc5ZvrR/IjYh4thdEoBnLsGnQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178769405766955.15241106952726; Tue, 25 Aug 2026 14:40:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr7-0005sD-Ij; Tue, 25 Aug 2026 17:38:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr6-0005rw-DW for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:52 -0400 Received: from forwardcorp1b.mail.yandex.net ([178.154.239.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr4-000551-IH for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:52 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 0068180873; Wed, 26 Aug 2026 00:38:49 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-zTuvfrzm; Wed, 26 Aug 2026 00:38:48 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693928; bh=BQHD+htt80RuZlwxjLMP/6d874aU12YAehXceZl63Tk=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=ap38GXMIgcjjNFoUKL8YK6VQ8IIbFjdSQL7kJp+e0zIbvOZRMqFTSordUtNc68aLu UVyms7MOphaCOaQFLDQaHZZ7LQsPHUBXvSUDenDhl1IKfvA+xiyV+ko+w0Nj/7zQ4f CofX2JtwRLdGnt7/zgH+f1pt631du27YDgJaSSBM= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Thomas Huth , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Matthew Penney Subject: [PATCH 18/30] hw/usb/redirect.c: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:58 +0300 Message-ID: <20260825213811.3725682-19-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.136; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694058381158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/usb/redirect.c | 59 ++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index dfd9e8bb50c..f4196b944d5 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -2267,8 +2267,9 @@ static int usbredir_post_load(void *priv, int version= _id) } =20 /* For usbredirparser migration */ -static int usbredir_put_parser(QEMUFile *f, void *priv, size_t unused, - const VMStateField *field, JSONWriter *vmde= sc) +static bool usbredir_save_parser(QEMUFile *f, void *priv, size_t unused, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { USBRedirDevice *dev =3D priv; uint8_t *data; @@ -2276,7 +2277,7 @@ static int usbredir_put_parser(QEMUFile *f, void *pri= v, size_t unused, =20 if (dev->parser =3D=3D NULL) { qemu_put_be32(f, 0); - return 0; + return true; } =20 usbredirparser_serialize(dev->parser, &data, &len); @@ -2290,11 +2291,11 @@ static int usbredir_put_parser(QEMUFile *f, void *p= riv, size_t unused, =20 free(data); =20 - return 0; + return true; } =20 -static int usbredir_get_parser(QEMUFile *f, void *priv, size_t unused, - const VMStateField *field) +static bool usbredir_load_parser(QEMUFile *f, void *priv, size_t unused, + const VMStateField *field, Error **errp) { USBRedirDevice *dev =3D priv; uint8_t *data; @@ -2302,7 +2303,7 @@ static int usbredir_get_parser(QEMUFile *f, void *pri= v, size_t unused, =20 len =3D qemu_get_be32(f); if (len =3D=3D 0) { - return 0; + return true; } =20 /* @@ -2326,19 +2327,25 @@ static int usbredir_get_parser(QEMUFile *f, void *p= riv, size_t unused, =20 g_free(data); =20 - return ret; + if (ret) { + error_setg(errp, "usbredirparser_unserialize failed"); + return false; + } + + return true; } =20 static const VMStateInfo usbredir_parser_vmstate_info =3D { .name =3D "usb-redir-parser", - .put =3D usbredir_put_parser, - .get =3D usbredir_get_parser, + .save =3D usbredir_save_parser, + .load =3D usbredir_load_parser, }; =20 =20 /* For buffered packets (iso/irq) queue migration */ -static int usbredir_put_bufpq(QEMUFile *f, void *priv, size_t unused, - const VMStateField *field, JSONWriter *vmdes= c) +static bool usbredir_save_bufpq(QEMUFile *f, void *priv, size_t unused, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { struct endp_data *endp =3D priv; USBRedirDevice *dev =3D endp->dev; @@ -2357,11 +2364,11 @@ static int usbredir_put_bufpq(QEMUFile *f, void *pr= iv, size_t unused, } assert(i =3D=3D endp->bufpq_size); =20 - return 0; + return true; } =20 -static int usbredir_get_bufpq(QEMUFile *f, void *priv, size_t unused, - const VMStateField *field) +static bool usbredir_load_bufpq(QEMUFile *f, void *priv, size_t unused, + const VMStateField *field, Error **errp) { struct endp_data *endp =3D priv; USBRedirDevice *dev =3D endp->dev; @@ -2385,13 +2392,13 @@ static int usbredir_get_bufpq(QEMUFile *f, void *pr= iv, size_t unused, DPRINTF("get_bufpq %d/%d len %d status %d\n", i + 1, endp->bufpq_s= ize, bufp->len, bufp->status); } - return 0; + return true; } =20 static const VMStateInfo usbredir_ep_bufpq_vmstate_info =3D { .name =3D "usb-redir-bufpq", - .put =3D usbredir_put_bufpq, - .get =3D usbredir_get_bufpq, + .save =3D usbredir_save_bufpq, + .load =3D usbredir_load_bufpq, }; =20 =20 @@ -2468,9 +2475,9 @@ static const VMStateDescription usbredir_ep_vmstate = =3D { =20 =20 /* For PacketIdQueue migration */ -static int usbredir_put_packet_id_q(QEMUFile *f, void *priv, size_t unused, +static bool usbredir_save_packet_id_q(QEMUFile *f, void *priv, size_t unus= ed, const VMStateField *field, - JSONWriter *vmdesc) + JSONWriter *vmdesc, Error **errp) { struct PacketIdQueue *q =3D priv; USBRedirDevice *dev =3D q->dev; @@ -2485,11 +2492,11 @@ static int usbredir_put_packet_id_q(QEMUFile *f, vo= id *priv, size_t unused, } assert(remain =3D=3D 0); =20 - return 0; + return true; } =20 -static int usbredir_get_packet_id_q(QEMUFile *f, void *priv, size_t unused, - const VMStateField *field) +static bool usbredir_load_packet_id_q(QEMUFile *f, void *priv, size_t unus= ed, + const VMStateField *field, Error **err= p) { struct PacketIdQueue *q =3D priv; USBRedirDevice *dev =3D q->dev; @@ -2503,13 +2510,13 @@ static int usbredir_get_packet_id_q(QEMUFile *f, vo= id *priv, size_t unused, packet_id_queue_add(q, id); } assert(q->size =3D=3D size); - return 0; + return true; } =20 static const VMStateInfo usbredir_ep_packet_id_q_vmstate_info =3D { .name =3D "usb-redir-packet-id-q", - .put =3D usbredir_put_packet_id_q, - .get =3D usbredir_get_packet_id_q, + .save =3D usbredir_save_packet_id_q, + .load =3D usbredir_load_packet_id_q, }; =20 static const VMStateDescription usbredir_ep_packet_id_queue_vmstate =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693953; cv=none; d=zohomail.com; s=zohoarc; b=VZkfkRQXj/rDc5ktuEzg5I4t/29fdcpjQvbHH6uL6pJDg+qNUNBDKoYWt4DzFpZfae9hkE1Dw4+9l56Tv2QFhfDrS9zcGgiT7t9fN9x/W+FnkxLlcKLtc/M2782PCBWVNJ0QfutoH8lLDeYiqHJM4xeiXV4NE7L+YG/1W89Llxc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693953; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eV9tuSWhOA7Hhsja1+94VnoCGQnJ4gnI785K//EcWfo=; b=PuZ6TeB+z1jl2vxN+EE7qQRyjZY8ZgHMaQ1PJcF5IiL35j3KDHNhe0g//w2h8XCzNptcbpxVH59/jV68urzRx+5MO68ubGebMAABWghXrA7K5x1+StEBB7IVVC8p78d7gIDdzpjeQr2Adx7nvsRJSEoXKly+dLgbRLlQ/QB+uvM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693953062254.3804887964717; Tue, 25 Aug 2026 14:39:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr9-0005tC-Ky; Tue, 25 Aug 2026 17:38:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr7-0005s6-6w for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:53 -0400 Received: from forwardcorp1d.mail.yandex.net ([2a02:6b8:c41:1300:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr5-00055Q-LQ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:52 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id B872B80DC3; Wed, 26 Aug 2026 00:38:49 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-9pKViNX4; Wed, 26 Aug 2026 00:38:49 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693929; bh=eV9tuSWhOA7Hhsja1+94VnoCGQnJ4gnI785K//EcWfo=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=l0ItoXpeF8YzsuIoQWXePS+Hj1n8iuFsZLgg1PZAQUvC1pyFxVxzyzW5B0X8KZoOB WUia61VAiJGio+cJp+503Hl1nIJj+zAZtEF3lnbFWmJ5AwW3ofjUAABkhs34aQbWvq NWsBD9G5JiEfAdohZ4jG8Dbn5/B9I1EgDj0lNNCM= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Richard Henderson Subject: [PATCH 19/30] alpha/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:37:59 +0300 Message-ID: <20260825213811.3725682-20-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c41:1300:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693957015158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/alpha/machine.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/target/alpha/machine.c b/target/alpha/machine.c index dcba5d441be..a3f67dd7b81 100644 --- a/target/alpha/machine.c +++ b/target/alpha/machine.c @@ -3,26 +3,27 @@ #include "migration/qemu-file-types.h" #include "migration/vmstate.h" =20 -static int get_fpcr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_fpcr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { CPUAlphaState *env =3D opaque; cpu_alpha_store_fpcr(env, qemu_get_be64(f)); - return 0; + return true; } =20 -static int put_fpcr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpcr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { CPUAlphaState *env =3D opaque; qemu_put_be64(f, cpu_alpha_load_fpcr(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_fpcr =3D { .name =3D "fpcr", - .get =3D get_fpcr, - .put =3D put_fpcr, + .load =3D load_fpcr, + .save =3D save_fpcr, }; =20 static const VMStateField vmstate_env_fields[] =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693975; cv=none; d=zohomail.com; s=zohoarc; b=MpoQLBZ3rTHnaYYGg9onwH4B/kJ5KkLH5IcTLSscImhqlJY5sE1vTrpEg7KBwh5uV2nW2Re0oIsbyJTWKbXbxI5260xqeNU67WB6T7YBcMzaZMPG3fO6xt+c2gHrZRGQViK2ieZrShR6EDVp6Nq/KUeuzdJ7rWlA9jFVtdnxj0A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693975; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ruTE9n4bIPwJtg+8yoYt/Cw2K0p82HwIULvvyww/7i4=; b=VZiAp/1R/3V11Ss2taFwnbbA/kaKs+2DcEqzQNOdJCAtlowqGbpnpG+vc3oQoSQMYr6k4LrHs2RZ2ThjHqN0+l/W+y9oayGRcnZoSlfF/MgBFBP3nrtOxeZ4uLAV4fxdBOYhLll8St3XlnRKE4z8hG3B3Ae40Nz5PuL9eGZ/jl0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693974549584.2551265111014; Tue, 25 Aug 2026 14:39:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyr9-0005t4-6D; Tue, 25 Aug 2026 17:38:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr7-0005sE-KF for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:53 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr5-00056E-Sh for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:53 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 9609F80BF4; Wed, 26 Aug 2026 00:38:50 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-5rYjpZ4y; Wed, 26 Aug 2026 00:38:49 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693929; bh=ruTE9n4bIPwJtg+8yoYt/Cw2K0p82HwIULvvyww/7i4=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=HPxw759vuaCFwsyxK6V6YAUlrRaXqZ76gq4Oaq4omRdZTFtxMSZWcnwYTHRGjR3uC jP8Rz+lRDJYFaGNKE67sp2uzUCkDdtqgAyVrAZaRRS9AvbOWI2Te0L9jXPiYqGT/lM /BFQv5hEwpyKsLdEzyTKPG0AhTSVtJm26eMitrVU= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Michael Rolnik Subject: [PATCH 20/30] avr/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:00 +0300 Message-ID: <20260825213811.3725682-21-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693975912158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/avr/machine.c | 50 +++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/target/avr/machine.c b/target/avr/machine.c index 8064a7214a3..2f6283743c7 100644 --- a/target/avr/machine.c +++ b/target/avr/machine.c @@ -23,78 +23,80 @@ #include "migration/qemu-file-types.h" #include "migration/vmstate.h" =20 -static int get_sreg(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_sreg(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { CPUAVRState *env =3D opaque; uint8_t sreg; =20 sreg =3D qemu_get_byte(f); cpu_set_sreg(env, sreg); - return 0; + return true; } =20 -static int put_sreg(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_sreg(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { CPUAVRState *env =3D opaque; uint8_t sreg =3D cpu_get_sreg(env); =20 qemu_put_byte(f, sreg); - return 0; + return true; } =20 static const VMStateInfo vms_sreg =3D { .name =3D "sreg", - .get =3D get_sreg, - .put =3D put_sreg, + .load =3D load_sreg, + .save =3D save_sreg, }; =20 -static int get_segment(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_segment(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { uint32_t *ramp =3D opaque; uint8_t temp; =20 temp =3D qemu_get_byte(f); *ramp =3D ((uint32_t)temp) << 16; - return 0; + return true; } =20 -static int put_segment(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_segment(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { uint32_t *ramp =3D opaque; uint8_t temp =3D *ramp >> 16; =20 qemu_put_byte(f, temp); - return 0; + return true; } =20 static const VMStateInfo vms_rampD =3D { .name =3D "rampD", - .get =3D get_segment, - .put =3D put_segment, + .load =3D load_segment, + .save =3D save_segment, }; static const VMStateInfo vms_rampX =3D { .name =3D "rampX", - .get =3D get_segment, - .put =3D put_segment, + .load =3D load_segment, + .save =3D save_segment, }; static const VMStateInfo vms_rampY =3D { .name =3D "rampY", - .get =3D get_segment, - .put =3D put_segment, + .load =3D load_segment, + .save =3D save_segment, }; static const VMStateInfo vms_rampZ =3D { .name =3D "rampZ", - .get =3D get_segment, - .put =3D put_segment, + .load =3D load_segment, + .save =3D save_segment, }; static const VMStateInfo vms_eind =3D { .name =3D "eind", - .get =3D get_segment, - .put =3D put_segment, + .load =3D load_segment, + .save =3D save_segment, }; =20 const VMStateDescription vms_avr_cpu =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694038; cv=none; d=zohomail.com; s=zohoarc; b=SE8jjlvuyZus7KwMAGSgz65L+UKoaTNb9WKmaO2OlcYbSC5nUjVzYqOGKuVVtzZpFHwlD/n/w/prxO1319QrUzF1k1uHItFGUsCEvqkFp3htnZ7K26YFPbRNYM8TzXqm7qZDiMmAtDick3Of3ycCKesIpedqVqoIuF30zsxNRZE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694038; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+C74xckgz2/W3c3AsfiOhFihXBLX5vMOUtCgkhiVF4I=; b=B1NXU/Hn+s1/QK0nNMKo010v2HiiiYqOp6PEdy8FtjQ3iVeB9cS5vhw+7ZNGvk4g5FYPCZAGCxptdIuqsIUHom6Pyxwo4Oo2FCueC2OOxGSTDuqnFr+1DQYFcjom5v52TbCuhJF0leRnISqU+dfQvuaVDQn9ZKTbvVaFhSQ2A50= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694038349144.77881424012492; Tue, 25 Aug 2026 14:40:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrA-0005tE-1D; Tue, 25 Aug 2026 17:38:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr8-0005sr-JX for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:54 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr6-00056Y-WE for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:54 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 5FCFC80E01; Wed, 26 Aug 2026 00:38:51 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-ZJb4AV9O; Wed, 26 Aug 2026 00:38:50 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693930; bh=+C74xckgz2/W3c3AsfiOhFihXBLX5vMOUtCgkhiVF4I=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=YAqk7pocGAKDxXOD7JON8NhDCI3NQvS3ftKtIEmAVlB1E+0UvI/UD8irYA3oPK7CE sShyrdOWoX4DYjvdOBHpmAhOu4DTqldllgAD4AZZq9HPum0sMk8hlybh69b78q4tOw JtK4fzehGIGBxmxD+itOFJfJSw2NdOU87FuLcVOo= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Stafford Horne Subject: [PATCH 21/30] or1k/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:01 +0300 Message-ID: <20260825213811.3725682-22-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694040009158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/or1k/machine.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/target/or1k/machine.c b/target/or1k/machine.c index 2d5ca16c511..800dc4c21cc 100644 --- a/target/or1k/machine.c +++ b/target/or1k/machine.c @@ -46,26 +46,27 @@ static const VMStateDescription vmstate_cpu_tlb =3D { } }; =20 -static int get_sr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_sr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { CPUOpenRISCState *env =3D opaque; cpu_set_sr(env, qemu_get_be32(f)); - return 0; + return true; } =20 -static int put_sr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_sr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { CPUOpenRISCState *env =3D opaque; qemu_put_be32(f, cpu_get_sr(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_sr =3D { .name =3D "sr", - .get =3D get_sr, - .put =3D put_sr, + .load =3D load_sr, + .save =3D save_sr, }; =20 static const VMStateDescription vmstate_env =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694014; cv=none; d=zohomail.com; s=zohoarc; b=JL9qOfKAF+WJN4nwVeEOVYeAHHs8YKwf8j+fEVwRUtNnl+U3Q8nGeDJsl38kmfEBLegfyKKQ7trp56qOFGA+nK7sEW54asCnks9FvxaEPrzho2KU/PNMEOu+m23XSAwwXX4XhzwBdPZrRAbZt+1/k1T4ufy60PFXd/mOUgLrNaw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694014; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+otlI1t72S2/VcSgp6CUtT0cgNjKdGvfUOfN56FDp4A=; b=hAJYiTBhViNqc+kZlB94G9926anZdVOMPt+cAXEoZ3bimAJHruIF2ZvsoDvqSjShAMShAFsxMtw1v4tmPaenRKYI0Ts4R170i4Pn8Pd1w4oly7KMFJZPvUyIIcSABb0SLHMZxEP4AdQEOYx0uRzj6zUYCcnbNOv3Id5qwKnWoCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694014381287.2677995933233; Tue, 25 Aug 2026 14:40:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrA-0005tX-Ec; Tue, 25 Aug 2026 17:38:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr9-0005sz-1a for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:55 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr7-00056u-GZ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:54 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 3B91180BF2; Wed, 26 Aug 2026 00:38:52 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-XOXT1fKe; Wed, 26 Aug 2026 00:38:51 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693931; bh=+otlI1t72S2/VcSgp6CUtT0cgNjKdGvfUOfN56FDp4A=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=BZu3ex+WPcBDrE5E07a+AZTTK/Ubrj2L/Ca+vIKvblXIyHk9pbYMrp6nJ3YFhtzX4 etvMFxMnqPVtrUHtZQCg2GNOZSmRQDzD5u3PURDrBGdTL6Ln5gHbatOqaQZZfI/U/3 i88yBWNAR8ygccUGM7nvHrNdaCd1fptpaO2g9W8w= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, "Edgar E. Iglesias" Subject: [PATCH 22/30] microblaze/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:02 +0300 Message-ID: <20260825213811.3725682-23-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694015893158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/microblaze/machine.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/target/microblaze/machine.c b/target/microblaze/machine.c index f930ff86091..73e741b6df2 100644 --- a/target/microblaze/machine.c +++ b/target/microblaze/machine.c @@ -37,28 +37,29 @@ static const VMStateDescription vmstate_mmu =3D { .fields =3D vmstate_mmu_fields, }; =20 -static int get_msr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_msr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { CPUMBState *env =3D container_of(opaque, CPUMBState, msr); =20 mb_cpu_write_msr(env, qemu_get_be32(f)); - return 0; + return true; } =20 -static int put_msr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_msr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { CPUMBState *env =3D container_of(opaque, CPUMBState, msr); =20 qemu_put_be32(f, mb_cpu_read_msr(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_msr =3D { .name =3D "msr", - .get =3D get_msr, - .put =3D put_msr, + .load =3D load_msr, + .save =3D save_msr, }; =20 static const VMStateField vmstate_env_fields[] =3D { --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694017; cv=none; d=zohomail.com; s=zohoarc; b=JK+8bubJ88NP9QrjuO7BjlZXnLIvBeizlYnG8aiQkX99AoAfJ1HRmnCzSsG4IMj5t1ewGorkyUm2GQNYSCCWoU11BaE0r5v+vqrhQuVt4tyuMIeBerllKXhO5+bNLqklA2T6FlsgJZ62znNTz8V/r7jFtT5ZToZapsn0ZP1Ka0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694017; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=X64fYLDKD3T4bXZSRBjzJvcDWKp+ym1oc6Miyq8M/dY=; b=McUGtE8rp1RBXe68ql/ZcBWMjWpem4Jxyx24SFhvRLpYO2XjD16Rx8+qyP/nUphJxNJaBxAcDMwe3QhUKjVKdis+dEDxc+Fmp7putPQcF25NJTYuDIpdsI9Dt3EBvIsIGhLsuDfzVJTBHafYn1H18bkUyxxgWzzwC4cpf5SwfIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178769401792068.53886540217434; Tue, 25 Aug 2026 14:40:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrC-0005uJ-19; Tue, 25 Aug 2026 17:38:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrA-0005tZ-If for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:56 -0400 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr8-000578-UE for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:56 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id 1D217C0982; Wed, 26 Aug 2026 00:38:53 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-HTWBtSot; Wed, 26 Aug 2026 00:38:52 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693932; bh=X64fYLDKD3T4bXZSRBjzJvcDWKp+ym1oc6Miyq8M/dY=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=Z5ieMYlQfCnBOXgq30rJe0MdKzsHOxf5wWQ08VjygAiNLFvNW2xaMAfGlBN58sTta TuYy1B7HtgblwJExg1taSmOqsEr/oQNptUJr9O5+qqt42iMQv4H6hnwgNGj31GMwVK 22VlhIKPXTUcCpKDMVAUzyZMOh2xNaK1NPl/vyyQ= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Richard Henderson , Helge Deller Subject: [PATCH 23/30] hppa/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:03 +0300 Message-ID: <20260825213811.3725682-24-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694020234158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/hppa/machine.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/target/hppa/machine.c b/target/hppa/machine.c index 6a143cf8df2..ddd9f27b772 100644 --- a/target/hppa/machine.c +++ b/target/hppa/machine.c @@ -23,30 +23,31 @@ #include "migration/vmstate.h" =20 =20 -static int get_psw(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_psw(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { CPUHPPAState *env =3D opaque; cpu_hppa_put_psw(env, qemu_get_be64(f)); - return 0; + return true; } =20 -static int put_psw(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_psw(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { CPUHPPAState *env =3D opaque; qemu_put_be64(f, cpu_hppa_get_psw(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_psw =3D { .name =3D "psw", - .get =3D get_psw, - .put =3D put_psw, + .load =3D load_psw, + .save =3D save_psw, }; =20 -static int get_tlb(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_tlb(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { HPPATLBEntry *ent =3D opaque; uint64_t val; @@ -69,11 +70,12 @@ static int get_tlb(QEMUFile *f, void *opaque, size_t si= ze, ent->access_id =3D extract64(val, 1, 31); ent->entry_valid =3D 1; } - return 0; + return true; } =20 -static int put_tlb(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_tlb(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { HPPATLBEntry *ent =3D opaque; uint64_t val =3D 0; @@ -96,13 +98,13 @@ static int put_tlb(QEMUFile *f, void *opaque, size_t si= ze, qemu_put_be64(f, ent->itree.last); qemu_put_be64(f, ent->pa); qemu_put_be64(f, val); - return 0; + return true; } =20 static const VMStateInfo vmstate_tlb_entry =3D { .name =3D "tlb entry", - .get =3D get_tlb, - .put =3D put_tlb, + .load =3D load_tlb, + .save =3D save_tlb, }; =20 static int tlb_pre_load(void *opaque) --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693992; cv=none; d=zohomail.com; s=zohoarc; b=YNXw4O0EIqZgWO1pgJmnIsOoq/WTYXVi2zBq7uN3CsACbOv04FGdViB8V7/7aJ0lA/ky01jX7KcK82GoUbVAiWnU+2JENU3DBW/sr96ZsgzdXvpOumIYbNOd4RhVTTXpnXJCsB8abtOu6WtnHYo1tuAoMlQOC+00VaaP9Nx1fdY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693992; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2LgR3mjJmAq9UcoaMLt22xPe3+X5Q+8dE7i5ipFji8I=; b=ksrtb6YwMbPl/A6o5AWNAJl8Zx2QfRgJTBWxlgs+91TnUXdWGBschchLDSv7HEZXHcDyvQYPps3Elg1gEQQ7tebNyXJwEviJVVcuKi0kBGW/zjoi1oscdj5zS7YE0yZxcINFQbWVx23xZOGyxCKn81RLsaROatdqffX5RtSiQZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178769399279750.198321228584405; Tue, 25 Aug 2026 14:39:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrD-0005vG-FE; Tue, 25 Aug 2026 17:38:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrB-0005tn-8f for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:57 -0400 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyr9-00057K-CL for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:56 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id 1022EC0987; Wed, 26 Aug 2026 00:38:54 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-t9AgGQzW; Wed, 26 Aug 2026 00:38:53 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693933; bh=2LgR3mjJmAq9UcoaMLt22xPe3+X5Q+8dE7i5ipFji8I=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=I1xIcc7nIHc3hv93Zz7mH0upM+zhwx8cu0cOAVNUjyUbgN9il7XtegvcbTanB5hkP JXUF+nQP10I5zDEq8s8fyfvGOsarHPpE8l5w7BUqXceKktW5lKeSNgtKWqfhzkMWb0 2D0Lj39PUkgzRCSSvqLrWUIUpd7lAnLSvSA4O8/Y= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Mark Cave-Ayland , Artyom Tarasenko Subject: [PATCH 24/30] sparc/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:04 +0300 Message-ID: <20260825213811.3725682-25-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693994183158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/sparc/machine.c | 68 ++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/target/sparc/machine.c b/target/sparc/machine.c index 0d5d79b5e7b..46f1e12344c 100644 --- a/target/sparc/machine.c +++ b/target/sparc/machine.c @@ -51,8 +51,8 @@ static const VMStateDescription vmstate_tlb_entry =3D { }; #endif =20 -static int get_psr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_psr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -62,11 +62,12 @@ static int get_psr(QEMUFile *f, void *opaque, size_t si= ze, env->cwp =3D 0; cpu_put_psr_raw(env, val); =20 - return 0; + return true; } =20 -static int put_psr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_psr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -75,17 +76,17 @@ static int put_psr(QEMUFile *f, void *opaque, size_t si= ze, val =3D cpu_get_psr(env); =20 qemu_put_be32(f, val); - return 0; + return true; } =20 static const VMStateInfo vmstate_psr =3D { .name =3D "psr", - .get =3D get_psr, - .put =3D put_psr, + .load =3D load_psr, + .save =3D save_psr, }; =20 -static int get_fsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_fsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { SPARCCPU *cpu =3D opaque; =20 @@ -95,11 +96,12 @@ static int get_fsr(QEMUFile *f, void *opaque, size_t si= ze, cpu_put_fsr(&cpu->env, qemu_get_be32(f)); } =20 - return 0; + return true; } =20 -static int put_fsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { SPARCCPU *cpu =3D opaque; =20 @@ -108,18 +110,18 @@ static int put_fsr(QEMUFile *f, void *opaque, size_t = size, } else { qemu_put_be32(f, cpu_get_fsr(&cpu->env)); } - return 0; + return true; } =20 static const VMStateInfo vmstate_fsr =3D { .name =3D "fsr", - .get =3D get_fsr, - .put =3D put_fsr, + .load =3D load_fsr, + .save =3D save_fsr, }; =20 #ifdef TARGET_SPARC64 -static int get_xcc(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_xcc(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -131,11 +133,12 @@ static int get_xcc(QEMUFile *f, void *opaque, size_t = size, env->xcc_Z =3D ~val & PSR_ZERO; env->xcc_C =3D (val >> PSR_CARRY_SHIFT) & 1; =20 - return 0; + return true; } =20 -static int put_xcc(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_xcc(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -143,17 +146,17 @@ static int put_xcc(QEMUFile *f, void *opaque, size_t = size, =20 /* Extract just xcc out of ccr and shift into legacy position. */ qemu_put_be32(f, (val & 0xf0) << (20 - 4)); - return 0; + return true; } =20 static const VMStateInfo vmstate_xcc =3D { .name =3D "xcc", - .get =3D get_xcc, - .put =3D put_xcc, + .load =3D load_xcc, + .save =3D save_xcc, }; =20 -static int get_cwp(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_cwp(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -163,24 +166,25 @@ static int get_cwp(QEMUFile *f, void *opaque, size_t = size, env->cwp =3D 0; cpu_set_cwp(env, val); =20 - return 0; + return true; } =20 -static int put_cwp(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_cwp(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, + Error **errp) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; uint32_t val =3D env->cwp; =20 qemu_put_be32(f, val); - return 0; + return true; } =20 static const VMStateInfo vmstate_cwp =3D { .name =3D "uint32", - .get =3D get_cwp, - .put =3D put_cwp, + .load =3D load_cwp, + .save =3D save_cwp, }; #else static bool fq_needed(void *opaque) --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694050; cv=none; d=zohomail.com; s=zohoarc; b=bAqyf61wkmBDwVsStgKD8fz3xtwbwm3keTgUR//hQgU8zgQzKmJ2vI49k43QZSslvYdlkRrRMPEbUt+5OVn/Syt3CbCqOqtYrjJFG7Uz/ky7plZC80q8XQBJbQtqEhnbtC1WeaWxeWiIwj8ThyeiOeq2PGIwbSMwvCecxRo8bnE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694050; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZAjRQ7+ZcxdP4rti3FBRDE5ZLsq5+OnsKkCcaL7Cqo0=; b=gIenIMYEcwOjdL3aind/S8ofsz+hdxU6JQHFPG5PjgvQtQmspaY7Yp6ZgNRs9qc3GmO3eOLXwx3m+AV3bFUZuqMj9qTPwSkO97l/mYqSFbdkJyR8LoxzhzyBtbyDQ1mj0YCTQtUAqbsKjsW9EKvbiTg4DcdHOnal3oOcYfNd1T0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694050163632.4899181201808; Tue, 25 Aug 2026 14:40:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrD-0005vP-UI; Tue, 25 Aug 2026 17:38:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrC-0005uO-Jf; Tue, 25 Aug 2026 17:38:58 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrA-00057c-Ky; Tue, 25 Aug 2026 17:38:58 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 0C70B80DF6; Wed, 26 Aug 2026 00:38:55 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-xFsvWXu9; Wed, 26 Aug 2026 00:38:54 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693934; bh=ZAjRQ7+ZcxdP4rti3FBRDE5ZLsq5+OnsKkCcaL7Cqo0=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=dFf4i+xprma/WWGm8Th6yV8pAhksPdZyjJdSCuHG3kcX3CbuXfgZ3XDLUSscsK3Qw eLIMEpymzQaSjfsk7II8tOZW6r+vEbd4Ehg/wsaqudg9cK1YUXDt+wUlCWpUg8JaQt Q6qSvoaUxRLMwkvg58RfYlYX6mbjR9J3jn/Dc7m4= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Nicholas Piggin , Chinmay Rath , Glenn Miles , Harsh Prateek Bora , qemu-ppc@nongnu.org (open list:PowerPC TCG CPUs) Subject: [PATCH 25/30] ppc/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:05 +0300 Message-ID: <20260825213811.3725682-26-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694052083158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/ppc/machine.c | 80 ++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/target/ppc/machine.c b/target/ppc/machine.c index 569536bd02d..f188bb9f5ea 100644 --- a/target/ppc/machine.c +++ b/target/ppc/machine.c @@ -23,31 +23,31 @@ static void post_load_update_msr(CPUPPCState *env) ppc_store_msr(env, msr); } =20 -static int get_avr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_avr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { ppc_avr_t *v =3D pv; =20 v->u64[0] =3D qemu_get_be64(f); v->u64[1] =3D qemu_get_be64(f); =20 - return 0; + return true; } =20 -static int put_avr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_avr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error **= errp) { ppc_avr_t *v =3D pv; =20 qemu_put_be64(f, v->u64[0]); qemu_put_be64(f, v->u64[1]); - return 0; + return true; } =20 static const VMStateInfo vmstate_info_avr =3D { .name =3D "avr", - .get =3D get_avr, - .put =3D put_avr, + .load =3D load_avr, + .save =3D save_avr, }; =20 #define VMSTATE_AVR_ARRAY_V(_f, _s, _n, _v) \ @@ -56,29 +56,29 @@ static const VMStateInfo vmstate_info_avr =3D { #define VMSTATE_AVR_ARRAY(_f, _s, _n) \ VMSTATE_AVR_ARRAY_V(_f, _s, _n, 0) =20 -static int get_fpr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { ppc_vsr_t *v =3D pv; =20 v->VsrD(0) =3D qemu_get_be64(f); =20 - return 0; + return true; } =20 -static int put_fpr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error **= errp) { ppc_vsr_t *v =3D pv; =20 qemu_put_be64(f, v->VsrD(0)); - return 0; + return true; } =20 static const VMStateInfo vmstate_info_fpr =3D { .name =3D "fpr", - .get =3D get_fpr, - .put =3D put_fpr, + .load =3D load_fpr, + .save =3D save_fpr, }; =20 #define VMSTATE_FPR_ARRAY_V(_f, _s, _n, _v) \ @@ -87,29 +87,29 @@ static const VMStateInfo vmstate_info_fpr =3D { #define VMSTATE_FPR_ARRAY(_f, _s, _n) \ VMSTATE_FPR_ARRAY_V(_f, _s, _n, 0) =20 -static int get_vsr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_vsr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { ppc_vsr_t *v =3D pv; =20 v->VsrD(1) =3D qemu_get_be64(f); =20 - return 0; + return true; } =20 -static int put_vsr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_vsr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error **= errp) { ppc_vsr_t *v =3D pv; =20 qemu_put_be64(f, v->VsrD(1)); - return 0; + return true; } =20 static const VMStateInfo vmstate_info_vsr =3D { .name =3D "vsr", - .get =3D get_vsr, - .put =3D put_vsr, + .load =3D load_vsr, + .save =3D save_vsr, }; =20 #define VMSTATE_VSR_ARRAY_V(_f, _s, _n, _v) \ @@ -344,26 +344,26 @@ static bool altivec_needed(void *opaque) return cpu->env.insns_flags & PPC_ALTIVEC; } =20 -static int get_vscr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_vscr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { PowerPCCPU *cpu =3D opaque; ppc_store_vscr(&cpu->env, qemu_get_be32(f)); - return 0; + return true; } =20 -static int put_vscr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_vscr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error *= *errp) { PowerPCCPU *cpu =3D opaque; qemu_put_be32(f, ppc_get_vscr(&cpu->env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_vscr =3D { .name =3D "cpu/altivec/vscr", - .get =3D get_vscr, - .put =3D put_vscr, + .load =3D load_vscr, + .save =3D save_vscr, }; =20 static const VMStateDescription vmstate_altivec =3D { @@ -465,31 +465,31 @@ static const VMStateDescription vmstate_sr =3D { }; =20 #ifdef TARGET_PPC64 -static int get_slbe(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_slbe(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { ppc_slb_t *v =3D pv; =20 v->esid =3D qemu_get_be64(f); v->vsid =3D qemu_get_be64(f); =20 - return 0; + return true; } =20 -static int put_slbe(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_slbe(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error *= *errp) { ppc_slb_t *v =3D pv; =20 qemu_put_be64(f, v->esid); qemu_put_be64(f, v->vsid); - return 0; + return true; } =20 static const VMStateInfo vmstate_info_slbe =3D { .name =3D "slbe", - .get =3D get_slbe, - .put =3D put_slbe, + .load =3D load_slbe, + .save =3D save_slbe, }; =20 #define VMSTATE_SLB_ARRAY_V(_f, _s, _n, _v) \ --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694064; cv=none; d=zohomail.com; s=zohoarc; b=ZuG0dJbfbt0WCiSJvDv2djylUeTQi5hUVJ1qoliEIid49dk4dXoccwpcnVoS+1m2W67jOvQDUc6hxU75cP8Q278t5NmrwqXYNyPDbbNeeX4rSDDvEPUMbX9G1PkjP792cc5igEvgkh4vvn8im27L8GZ5tYY9vsSADAoU9eqE+Es= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694064; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lSGcV4CN3muTEJ3v+Jy/X7vfKCkrj8mQ8Jiw/LwoRME=; b=OKWdji4y39RQNK9bnYI5IY2QOGqcOS1qb8bFWR5fZ1JT7zajGjmUNaEmd8PzqmnUvSsJNhoA7vCdPXdJKajJLcKOctZRL/ZPiC7FTuHrvXj1g1a2nZmtBthN9RJI2jaJaRpM3Zj+eZQNiAyhgWTaxfjiNzUS1yxn4oSQmaVRVs0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694064372889.8828442212518; Tue, 25 Aug 2026 14:41:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrE-0005vi-Hm; Tue, 25 Aug 2026 17:39:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrD-0005vH-Hp for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:59 -0400 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrB-00057o-QH for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:38:59 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1a.mail.yandex.net (postfix) with ESMTPS id 389C3C0962; Wed, 26 Aug 2026 00:38:56 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-unjOXrR1; Wed, 26 Aug 2026 00:38:55 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693935; bh=lSGcV4CN3muTEJ3v+Jy/X7vfKCkrj8mQ8Jiw/LwoRME=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=IQgNB5BR00fL6zU7txE8MkXHxpjdNbZXW9eNEcIhtxzvlV2GPqo638pQfh0PnaLR/ ISJmzK8fc6HOzZsyGyy657Fi1pZ/8r4fDookOiEHm+wO8iJxd0wUIoByHJRvS3Y5wN KXNZCC1lb7NHIDXPCcX9qNe2mlfwRSjE/jH0iIW4= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Jiaxun Yang , Aleksandar Rikalo Subject: [PATCH 26/30] mips/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:06 +0300 Message-ID: <20260825213811.3725682-27-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694066386158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/mips/system/machine.c | 49 ++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/target/mips/system/machine.c b/target/mips/system/machine.c index bd1e4002cfd..dc8a9920e5a 100644 --- a/target/mips/system/machine.c +++ b/target/mips/system/machine.c @@ -22,8 +22,8 @@ static int cpu_post_load(void *opaque, int version_id) =20 /* FPU state */ =20 -static int get_fpr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { int i; fpr_t *v =3D pv; @@ -31,11 +31,11 @@ static int get_fpr(QEMUFile *f, void *pv, size_t size, for (i =3D 0; i < MSA_WRLEN / 64; i++) { qemu_get_sbe64s(f, &v->wr.d[i]); } - return 0; + return true; } =20 -static int put_fpr(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error **= errp) { int i; fpr_t *v =3D pv; @@ -44,13 +44,13 @@ static int put_fpr(QEMUFile *f, void *pv, size_t size, qemu_put_sbe64s(f, &v->wr.d[i]); } =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_fpr =3D { .name =3D "fpr", - .get =3D get_fpr, - .put =3D put_fpr, + .load =3D load_fpr, + .save =3D save_fpr, }; =20 #define VMSTATE_FPR_ARRAY_V(_f, _s, _n, _v) \ @@ -145,8 +145,9 @@ static gboolean put_octeon_llm_tree_entry(gpointer key,= gpointer value, return false; } =20 -static int put_octeon_llm_tree(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmde= sc) +static bool save_octeon_llm_tree(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { QTree *tree =3D *(QTree **)pv; OcteonLLMTreePutData data =3D { .f =3D f }; @@ -157,11 +158,11 @@ static int put_octeon_llm_tree(QEMUFile *f, void *pv,= size_t size, q_tree_foreach(tree, put_octeon_llm_tree_entry, &data); } =20 - return 0; + return true; } =20 -static int get_octeon_llm_tree(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_octeon_llm_tree(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { QTree **treep =3D pv; uint32_t nnodes =3D qemu_get_be32(f); @@ -178,13 +179,13 @@ static int get_octeon_llm_tree(QEMUFile *f, void *pv,= size_t size, mips_octeon_llm_store(treep, addr, value); } =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_octeon_llm_tree =3D { .name =3D "octeon_llm_tree", - .get =3D get_octeon_llm_tree, - .put =3D put_octeon_llm_tree, + .load =3D load_octeon_llm_tree, + .save =3D save_octeon_llm_tree, }; =20 #define VMSTATE_OCTEON_LLM_TREE(_f, _s) { \ @@ -210,8 +211,8 @@ static const VMStateDescription vmstate_mvp =3D { =20 /* TLB state */ =20 -static int get_tlb(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_tlb(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { r4k_tlb_t *v =3D pv; uint16_t flags; @@ -240,11 +241,11 @@ static int get_tlb(QEMUFile *f, void *pv, size_t size, qemu_get_be64s(f, &v->PFN[0]); qemu_get_be64s(f, &v->PFN[1]); =20 - return 0; + return true; } =20 -static int put_tlb(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_tlb(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error **= errp) { r4k_tlb_t *v =3D pv; =20 @@ -275,13 +276,13 @@ static int put_tlb(QEMUFile *f, void *pv, size_t size, qemu_put_be64s(f, &v->PFN[0]); qemu_put_be64s(f, &v->PFN[1]); =20 - return 0; + return true; } =20 static const VMStateInfo vmstate_info_tlb =3D { .name =3D "tlb_entry", - .get =3D get_tlb, - .put =3D put_tlb, + .load =3D load_tlb, + .save =3D save_tlb, }; =20 #define VMSTATE_TLB_ARRAY_V(_f, _s, _n, _v) \ --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693953; cv=none; d=zohomail.com; s=zohoarc; b=imbZMDW5CvipMNByJ6CMFQjivkCrNdbfjqIsYIASDgy1qwYT0CImf0N7JoxGE946pqTewClWo1rsT+ZXHZrOGwVigjVHmmC3IXj2m42Yi6OGTJftHzwd4QwU5l9MvAv+ccIHBR9KzTKpE4e7YHmV7d0nwZJBH3iDQ2CuNmnvacM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693953; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OTcaoVL0jFQJye1RDa6kfEsVtuP3AO7ZE+Bi7QLZWuc=; b=GlCmRQnNT+aJALJzDA32a323PHCn+DMbcI9dh43tARQuCYRVydSVIspxBtl6dgCdLO0t2PxoqK479jaHdwdzZO5WdLSpS3vd2mxohDJ1q5da/HDfw1oRDncXeCq7mg/1TlpBSgQNXL0+ZkP2k+o89IMHwtHtmya6rhRk4zURCjc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693953061235.4568907360043; Tue, 25 Aug 2026 14:39:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrF-0005wd-Qa; Tue, 25 Aug 2026 17:39:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrE-0005wA-Sx; Tue, 25 Aug 2026 17:39:00 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrC-000580-R7; Tue, 25 Aug 2026 17:39:00 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id 446FF80900; Wed, 26 Aug 2026 00:38:57 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-ivIrbZkj; Wed, 26 Aug 2026 00:38:56 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693936; bh=OTcaoVL0jFQJye1RDa6kfEsVtuP3AO7ZE+Bi7QLZWuc=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=jUBX6XD81CfXyN1M4tuoMvwgHYLdC0E3OLPrcTL6HYnWVdTc7Du+z12+7DLkRGHA6 xo7x+4nABDaUI8hoyuIC96U5FQsJXwbQjG0DxlwTEUVxRpbovInZABwRZXgpfsOyGA bnRBtO1NH8fd+YFs8rbiUQ+o0m8yKVmSu+esZNZk= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru, Peter Maydell , qemu-arm@nongnu.org (open list:ARM TCG CPUs) Subject: [PATCH 27/30] arm/machine: move to new migration APIs Date: Wed, 26 Aug 2026 00:38:07 +0300 Message-ID: <20260825213811.3725682-28-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693957244158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- target/arm/machine.c | 107 ++++++++++++++++++++++--------------------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/target/arm/machine.c b/target/arm/machine.c index 89127e5d83c..159a1f0e930 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -51,8 +51,8 @@ static bool vfp_fpcr_fpsr_needed(void *opaque) (vfp_get_fpsr(env) & ~FPSCR_FPSR_MASK); } =20 -static int get_fpscr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_fpscr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -62,78 +62,81 @@ static int get_fpscr(QEMUFile *f, void *opaque, size_t = size, /* 0 means we might have the data in the fpcr_fpsr subsection */ vfp_set_fpscr(env, val); } - return 0; + return true; } =20 -static int put_fpscr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpscr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; uint32_t fpscr =3D vfp_fpcr_fpsr_needed(opaque) ? 0 : vfp_get_fpscr(en= v); =20 qemu_put_be32(f, fpscr); - return 0; + return true; } =20 static const VMStateInfo vmstate_fpscr =3D { .name =3D "fpscr", - .get =3D get_fpscr, - .put =3D put_fpscr, + .load =3D load_fpscr, + .save =3D save_fpscr, }; =20 -static int get_fpcr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_fpcr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; uint64_t val =3D qemu_get_be64(f); =20 vfp_set_fpcr(env, val); - return 0; + return true; } =20 -static int put_fpcr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpcr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; =20 qemu_put_be64(f, vfp_get_fpcr(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_fpcr =3D { .name =3D "fpcr", - .get =3D get_fpcr, - .put =3D put_fpcr, + .load =3D load_fpcr, + .save =3D save_fpcr, }; =20 -static int get_fpsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_fpsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; uint64_t val =3D qemu_get_be64(f); =20 vfp_set_fpsr(env, val); - return 0; + return true; } =20 -static int put_fpsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_fpsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; =20 qemu_put_be64(f, vfp_get_fpsr(env)); - return 0; + return true; } =20 static const VMStateInfo vmstate_fpsr =3D { .name =3D "fpsr", - .get =3D get_fpsr, - .put =3D put_fpsr, + .load =3D load_fpsr, + .save =3D save_fpsr, }; =20 static const VMStateDescription vmstate_vfp_fpcr_fpsr =3D { @@ -755,8 +758,8 @@ static const VMStateDescription vmstate_m_security =3D { } }; =20 -static int get_cpsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_cpsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -797,22 +800,22 @@ static int get_cpsr(QEMUFile *f, void *opaque, size_t= size, } /* Ignore the low bits, they are handled by vmstate_m. */ xpsr_write(env, val, ~XPSR_EXCP); - return 0; + return true; } =20 env->aarch64 =3D ((val & PSTATE_nRW) =3D=3D 0); =20 if (is_a64(env)) { pstate_write(env, val); - return 0; + return true; } =20 cpsr_write(env, val, 0xffffffff, CPSRWriteRaw); - return 0; + return true; } =20 -static int put_cpsr(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_cpsr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error *= *errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -828,17 +831,17 @@ static int put_cpsr(QEMUFile *f, void *opaque, size_t= size, } =20 qemu_put_be32(f, val); - return 0; + return true; } =20 static const VMStateInfo vmstate_cpsr =3D { .name =3D "cpsr", - .get =3D get_cpsr, - .put =3D put_cpsr, + .load =3D load_cpsr, + .save =3D save_cpsr, }; =20 -static int get_pstate64(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_pstate64(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -850,11 +853,12 @@ static int get_pstate64(QEMUFile *f, void *opaque, si= ze_t size, } else { cpsr_write_from_spsr_elx(env, val); } - return 0; + return true; } =20 -static int put_pstate64(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_pstate64(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, + JSONWriter *vmdesc, Error **errp) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -866,7 +870,7 @@ static int put_pstate64(QEMUFile *f, void *opaque, size= _t size, val =3D cpsr_read_for_spsr_elx(env); } qemu_put_be64(f, val); - return 0; + return true; } =20 static bool pstate64_needed(void *opaque) @@ -901,8 +905,8 @@ static const VMStateDescription vmstate_pstate64 =3D { .size =3D sizeof(uint64_t), .info =3D &(const VMStateInfo) { .name =3D "pstate64", - .get =3D get_pstate64, - .put =3D put_pstate64, + .load =3D load_pstate64, + .save =3D save_pstate64, }, .flags =3D VMS_SINGLE, .offset =3D 0, @@ -911,17 +915,17 @@ static const VMStateDescription vmstate_pstate64 =3D { }, }; =20 -static int get_power(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field) +static bool load_power(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, Error **errp) { ARMCPU *cpu =3D opaque; bool powered_off =3D qemu_get_byte(f); arm_set_cpu_power_state(cpu, powered_off ? PSCI_OFF : PSCI_ON); - return 0; + return true; } =20 -static int put_power(QEMUFile *f, void *opaque, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_power(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, JSONWriter *vmdesc, Error *= *errp) { ARMCPU *cpu =3D opaque; =20 @@ -931,16 +935,17 @@ static int put_power(QEMUFile *f, void *opaque, size_= t size, cpu->power_state =3D=3D PSCI_OFF) { bool powered_off =3D (cpu->power_state =3D=3D PSCI_OFF) ? true : f= alse; qemu_put_byte(f, powered_off); - return 0; + return true; } else { - return 1; + error_setg(errp, "Migration should not happen during power transit= ion"); + return false; } } =20 static const VMStateInfo vmstate_powered_off =3D { .name =3D "powered_off", - .get =3D get_power, - .put =3D put_power, + .load =3D load_power, + .save =3D save_power, }; =20 static bool syndrome64_needed(void *opaque) --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693999; cv=none; d=zohomail.com; s=zohoarc; b=ILOzB+7qmv+mGcGr9sw5AFkpHaD78hk0ALxaufLbirzhrcVyFrXt4SB/ipfZEuZHgee1nJChcg+F8plYe8RisVrtTMmqMVz+n6oEHvdmF4Ue0oGFmsu2f9eiIrm2tcsizJIq8lFiRYupxi6E/Wm7B/Fl9GJp3IQWvVGhf4FD55k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693999; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oTo7kLabaWc9A3aXerLw9RgSBQRSeMgoPIKXRyndO00=; b=UYIISxRB8VxFxFReA70UcHtLbQ7AKNvjKbCjUFYitefwZ16QeVsQc2YwElX6O1ICno73NWf/eqSdbA6zA5UVpgSUtLkyNcL71qp9M2Z52xU1Ne3vLJLXYJORRXgUWXtBD/971uS6NA3Kt0idqeQort8ZqQnbHuNv8dGhUXF4PH4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693999329176.6369809959391; Tue, 25 Aug 2026 14:39:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrG-0005xC-9n; Tue, 25 Aug 2026 17:39:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrE-0005w9-Rt for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:00 -0400 Received: from forwardcorp1b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrD-000587-9O for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:00 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1b.mail.yandex.net (postfix) with ESMTPS id EA66A80C0A; Wed, 26 Aug 2026 00:38:57 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-CexrEYaz; Wed, 26 Aug 2026 00:38:57 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693937; bh=oTo7kLabaWc9A3aXerLw9RgSBQRSeMgoPIKXRyndO00=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=j3+X4qKrWbdvTVJRXIMoNdI90L53BPc3Zp0mL/4F1YRAy9OvCy2ac4UgJ3eAAka4z l9kjfB9Yy1tJa5vpjK4+29xAQfPQ3EK+i9JXdsytwv7YhuN4eLypZ1Ekb7dm3N5JTU JfCPutbe28N5xw1gEHkab50fMKsnUwl5LsXOf+ck= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru Subject: [PATCH 28/30] migration/vmstate-types: convert vmstate_info_g_byte_array to new APIs Date: Wed, 26 Aug 2026 00:38:08 +0300 Message-ID: <20260825213811.3725682-29-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c02:900:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1b.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693999838158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Fabiano Rosas --- migration/vmstate-types.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c index 8c01215c251..c2d4645f317 100644 --- a/migration/vmstate-types.c +++ b/migration/vmstate-types.c @@ -925,30 +925,31 @@ const VMStateInfo vmstate_info_qlist =3D { .save =3D save_qlist, }; =20 -static int get_g_byte_array(QEMUFile *f, void *pv, size_t size, - const VMStateField *field) +static bool load_g_byte_array(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, Error **errp) { GByteArray *byte_array =3D *(GByteArray **)pv; uint32_t len =3D qemu_get_be32(f); =20 g_byte_array_set_size(byte_array, len); qemu_get_buffer(f, byte_array->data, len); - return 0; + return true; } =20 -static int put_g_byte_array(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, JSONWriter *vmdesc) +static bool save_g_byte_array(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdes= c, + Error **errp) { GByteArray *byte_array =3D *(GByteArray **)pv; =20 qemu_put_be32(f, byte_array->len); qemu_put_buffer(f, byte_array->data, byte_array->len); =20 - return 0; + return true; } =20 const VMStateInfo vmstate_info_g_byte_array =3D { .name =3D "GByteArray", - .get =3D get_g_byte_array, - .put =3D put_g_byte_array, + .load =3D load_g_byte_array, + .save =3D save_g_byte_array, }; --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787693996; cv=none; d=zohomail.com; s=zohoarc; b=oKwfeaYDsQsahbh+0CTscO6kcHyjVYSd+brYAVLdBamYW4CNAsbXypoZVMkgCJw05ZyiiGUHQG6uo3psPj5THKUuWmTK7dupNapNIvGWpvxV6UC8Tg2NjlgBdZP7AF1jBiaswSfa+c+/f71ev7et/Md4GDyw8SKXVrHqea5Rr/U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787693996; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KdUUDcSC8JIFLpggCgXalv656q2CP4nJM77/pWea93I=; b=hOKOnZIjqwFiKQjeBet6LcgDoyyeKnw5CODTQCZ9WPHR+N7F0lJOLbD9GtW2QD1tzNTgifMJ2J3fs1/zK6OtP1IgcM0iFCfMK3SsdZ7WrTm+svb7BziZvKHnLWwBOsx4/ZGV6ZG4B/FqsdEmKz4YXNe2Hw/ye2JsA7GOpyrT7MI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787693996642859.9789219634508; Tue, 25 Aug 2026 14:39:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrH-0005yA-BE; Tue, 25 Aug 2026 17:39:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrF-0005wc-OF for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:01 -0400 Received: from forwardcorp1d.mail.yandex.net ([2a02:6b8:c41:1300:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrD-00058N-UT for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:01 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id B037B80DC3; Wed, 26 Aug 2026 00:38:58 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-oYco2QXt; Wed, 26 Aug 2026 00:38:58 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693938; bh=KdUUDcSC8JIFLpggCgXalv656q2CP4nJM77/pWea93I=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=ssAjUo/mugYzp6BkS26RsAuEl52Sf5FmfELNBPxOiGrRfHd06Nq+yDaPEmemNIALx XqWFXzXq4pNobzYka22ZjIwqmW5GnVZQ5c9BVtn5dqT3JDVTPRapRzbRpFlZRsufKQ TzOOmNaIMYIi0MIH45ncuVu123DUH1pcqN1n5+1E= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru Subject: [PATCH 29/30] migration: VMStateInfo: remove old .get / .set handlers Date: Wed, 26 Aug 2026 00:38:09 +0300 Message-ID: <20260825213811.3725682-30-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2a02:6b8:c41:1300:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787693997852158500 Content-Type: text/plain; charset="utf-8" They are unused now. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/migration/vmstate.h | 8 -------- migration/vmstate.c | 20 ++------------------ 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 1b7f295417e..5e53440115e 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -39,17 +39,9 @@ typedef struct VMStateField VMStateField; * these two parameters should only be used in cases when customized * handling is needed, such as QTAILQ. For primitive data types such as * integer, field and vmdesc parameters should be ignored inside load/save. - * - * @get and @put are deprecated copies of @load and @save. For new interfa= ces - * use @load and @save. */ struct VMStateInfo { const char *name; - int coroutine_mixed_fn (*get)(QEMUFile *f, void *pv, size_t size, - const VMStateField *field); - int coroutine_mixed_fn (*put)(QEMUFile *f, void *pv, size_t size, - const VMStateField *field, - JSONWriter *vmdesc); bool coroutine_mixed_fn (*load)(QEMUFile *f, void *pv, size_t size, const VMStateField *field, Error **errp); diff --git a/migration/vmstate.c b/migration/vmstate.c index 50ebe378452..a4cf9214d54 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -189,18 +189,9 @@ static bool vmstate_load_field(QEMUFile *f, void *pv, = size_t size, } else if (field->flags & VMS_VSTRUCT) { return vmstate_load_vmsd(f, field->vmsd, pv, field->struct_version= _id, errp); - } else if (field->info->load) { - return field->info->load(f, pv, size, field, errp); } =20 - if (field->info->get(f, pv, size, field) < 0) { - error_setg(errp, - "Failed to load element of type %s for %s", - field->info->name, field->name); - return false; - } - - return true; + return field->info->load(f, pv, size, field, errp); } =20 static bool vmstate_post_load(const VMStateDescription *vmsd, @@ -583,16 +574,9 @@ static bool vmstate_save_field(QEMUFile *f, void *pv, = size_t size, } else if (field->flags & VMS_VSTRUCT) { return vmstate_save_vmsd_v(f, field->vmsd, pv, vmdesc, field->struct_version_id, errp); - } else if (field->info->save) { - return field->info->save(f, pv, size, field, vmdesc, errp); } =20 - if (field->info->put(f, pv, size, field, vmdesc) < 0) { - error_setg(errp, "put failed"); - return false; - } - - return true; + return field->info->save(f, pv, size, field, vmdesc, errp); } =20 /* --=20 2.43.0 From nobody Sat Sep 26 21:37:37 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1787694008; cv=none; d=zohomail.com; s=zohoarc; b=HQ0EDFRfP8Dvl9LUQd4QCDUvtaQGD+BJUS0hsIR9tyOcwgBlE2Ca8TGM+RPVepC2zPPakcP5rv7B6gxvAsTfPrJ0z+Lbvvi9lwvFBv8XD98AKQ93lBu0gNOQjrtqV3qOVoiJjmYAnguBSeTMB8LPM7Nfmg25dmfm4f8MYBbahdA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787694008; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=L4emkHPai025VaufLnGb/EFBYJ7znQppa2IZ825pCZM=; b=iuUm3+XNverkqpTHux+hCRcCm7tFNfwmZvxlapAwb1WN1otvPGH37xVlHQJKjZyOdiURyo2TBEs4NTs/ZrbaObv5eJHdmRsJfHw4WJBl+y3gQ7qQyr4iAWMRSDWQja7DDLfpR5etHpRa8XTtbzfY0YWCg+q1+loqeWZxlyD3k80= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787694008722386.57168115299703; Tue, 25 Aug 2026 14:40:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wyyrH-0005yM-Pp; Tue, 25 Aug 2026 17:39:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrG-0005xD-AQ for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:02 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wyyrE-00058a-M7 for qemu-devel@nongnu.org; Tue, 25 Aug 2026 17:39:01 -0400 Received: from mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:39a2:0:640:ae2d:0]) by forwardcorp1d.mail.yandex.net (postfix) with ESMTPS id 5C94980DCD; Wed, 26 Aug 2026 00:38:59 +0300 (MSK) Received: from i115954770.yandex-team.ru (unknown [2a02:6bf:8080:630::1:39]) by mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net (smtpcorp) with ESMTPSA id QckKa93ZVmI0-V7JlZctG; Wed, 26 Aug 2026 00:38:58 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1787693938; bh=L4emkHPai025VaufLnGb/EFBYJ7znQppa2IZ825pCZM=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=ddd/bIEwFLey4ZRt6E2QXETodDyotI32WUmy/1k0emHgzar3uQNNXxfcDcElC6kL+ NeoyseoihWw3XxAL5/Nt3QvULPe+OdkRWBJ0pWikXglo9HK8DFBQ+YV4rkCIUT51hc 8S8c+/6Q1QEGfEnT83S0t6D5uAcHA8L6kpgJCmBg= Authentication-Results: mail-nwsmtp-smtp-corp-main-66.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: peterx@redhat.com Cc: farosas@suse.de, qemu-devel@nongnu.org, vsementsov@yandex-team.ru Subject: [PATCH 30/30] migration: finally drop vmstate_save/load_state() functions Date: Wed, 26 Aug 2026 00:38:10 +0300 Message-ID: <20260825213811.3725682-31-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260825213811.3725682-1-vsementsov@yandex-team.ru> References: <20260825213811.3725682-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1787694009935158501 Content-Type: text/plain; charset="utf-8" Now they are unused. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/migration/vmstate.h | 9 --------- migration/vmstate.c | 12 ------------ 2 files changed, 21 deletions(-) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 5e53440115e..b86386f14a9 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -1307,15 +1307,6 @@ extern const VMStateInfo vmstate_info_g_byte_array; .flags =3D VMS_END, \ } =20 -/* - * vmstate_load_state() and vmstate_save_state() are - * depreacated, use vmstate_load_vmsd() and vmstate_save_vmsd() - * instead. - */ -int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, int version_id, Error **errp); -int vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, JSONWriter *vmdesc, Error **errp); bool vmstate_load_vmsd(QEMUFile *f, const VMStateDescription *vmsd, void *opaque, int version_id, Error **errp); bool vmstate_save_vmsd(QEMUFile *f, const VMStateDescription *vmsd, diff --git a/migration/vmstate.c b/migration/vmstate.c index a4cf9214d54..f8424234118 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -880,15 +880,3 @@ static bool vmstate_subsection_save(QEMUFile *f, const= VMStateDescription *vmsd, =20 return true; } - -int vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, JSONWriter *vmdesc_id, Error **errp) -{ - return vmstate_save_vmsd(f, vmsd, opaque, vmdesc_id, errp) ? 0 : -EINV= AL; -} - -int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, int version_id, Error **errp) -{ - return vmstate_load_vmsd(f, vmsd, opaque, version_id, errp) ? 0 : -EIN= VAL; -} --=20 2.43.0