From nobody Wed Nov 27 14:20:30 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1697814441; cv=none; d=zohomail.com; s=zohoarc; b=hYBwYZVx3EKWg0orusPJjwDMehMOExc6SmKQKpPduK7Pf4tl4TuU2pm71yID0kbecT6AuJktWm27cfq+7ydkouZrMm3TzDl703OMFBu10mg9g/vkLieWmpy3aO9bxKd9tpAnEvCZXu2aQagihH018BG8Tos5GH7S/Y6XZkuUIuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697814441; 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=NG+yzLcAuX4z6AnLXT7tTZKW/GTwN0xS26UfaJvCq+Q=; b=hOqA1TG20nYQzZFYJBOc8asvU07QoGC1TVgNzA1VWQYsXGPLgHFZpvtvKVvvJCUPqcg5bKjFMfrpGWMrxV9iCjgzoc8dBh3TCS3jwL24IJVDM7XRysyhaqPKuf7lA5uFk+NO3fZhB+vB+0dUyYTO8DuOTd7CsLSvYpRq6D1PmCs= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1697814441966897.8801514004745; Fri, 20 Oct 2023 08:07:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtr4r-0005QZ-Ip; Fri, 20 Oct 2023 11:06:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4m-0005Pc-8i for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4g-0001IC-K0 for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:10 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-591-k83WJI3rO9CO1MDuyaPzIw-1; Fri, 20 Oct 2023 11:05:59 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2003E3816B53; Fri, 20 Oct 2023 15:05:59 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.192.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 976F22166B26; Fri, 20 Oct 2023 15:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697814363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NG+yzLcAuX4z6AnLXT7tTZKW/GTwN0xS26UfaJvCq+Q=; b=N0dkuUzGND0d5PrK6090jWqZCox0DVYDjOHna4SrZg4goQKN2shBbJk9vFbsshlpqBoQw8 f002co7iRhzC72Jp6D/9DR7zOj5pSKJrwPONNSIBybbG3NxnGZotwCbNSiP/7ZUUwOZblG uK0Wk0aWxz6pBrkQSVimLi22RlDEh94= X-MC-Unique: k83WJI3rO9CO1MDuyaPzIw-1 From: Thomas Huth To: qemu-devel@nongnu.org, Christian Borntraeger Cc: qemu-s390x@nongnu.org, Halil Pasic , Eric Farman , David Hildenbrand , Claudio Imbrenda , Juan Quintela Subject: [PATCH v2 1/3] hw/s390x/s390-skeys: Don't call register_savevm_live() during instance_init() Date: Fri, 20 Oct 2023 17:05:52 +0200 Message-ID: <20231020150554.664422-2-thuth@redhat.com> In-Reply-To: <20231020150554.664422-1-thuth@redhat.com> References: <20231020150554.664422-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 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=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @redhat.com) X-ZM-MESSAGEID: 1697814444170100003 Content-Type: text/plain; charset="utf-8" Since the instance_init() function immediately tries to set the property to "true", the s390_skeys_set_migration_enabled() tries to register a savevm handler during instance_init(). However, instance_init() functions can be called multiple times, e.g. for introspection of devices. That means multiple instances of devices can be created during runtime (which is fine as long as they all don't get realized, too), so the "Prevent double registration of savevm handler" check in the s390_skeys_set_migration_enabled() function does not work at all as expected (since there could be more than one instance). Thus we must not call register_savevm_live() from an instance_init() function at all. Move this to the realize() function instead. This way we can also get rid of the property getter and setter functions completely, simplifying the code along the way quite a bit. Acked-by: David Hildenbrand Reviewed-by: Eric Farman Signed-off-by: Thomas Huth Acked-by: Juan Quintela --- hw/s390x/s390-skeys.c | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index 5024faf411..8e9d9e41e8 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -12,6 +12,7 @@ #include "qemu/osdep.h" #include "qemu/units.h" #include "hw/boards.h" +#include "hw/qdev-properties.h" #include "hw/s390x/storage-keys.h" #include "qapi/error.h" #include "qapi/qapi-commands-misc-target.h" @@ -432,58 +433,38 @@ static int s390_storage_keys_load(QEMUFile *f, void *= opaque, int version_id) return ret; } =20 -static inline bool s390_skeys_get_migration_enabled(Object *obj, Error **e= rrp) -{ - S390SKeysState *ss =3D S390_SKEYS(obj); - - return ss->migration_enabled; -} - static SaveVMHandlers savevm_s390_storage_keys =3D { .save_state =3D s390_storage_keys_save, .load_state =3D s390_storage_keys_load, }; =20 -static inline void s390_skeys_set_migration_enabled(Object *obj, bool valu= e, - Error **errp) +static void s390_skeys_realize(DeviceState *dev, Error **errp) { - S390SKeysState *ss =3D S390_SKEYS(obj); - - /* Prevent double registration of savevm handler */ - if (ss->migration_enabled =3D=3D value) { - return; - } - - ss->migration_enabled =3D value; + S390SKeysState *ss =3D S390_SKEYS(dev); =20 if (ss->migration_enabled) { register_savevm_live(TYPE_S390_SKEYS, 0, 1, &savevm_s390_storage_keys, ss); - } else { - unregister_savevm(VMSTATE_IF(ss), TYPE_S390_SKEYS, ss); } } =20 -static void s390_skeys_instance_init(Object *obj) -{ - object_property_add_bool(obj, "migration-enabled", - s390_skeys_get_migration_enabled, - s390_skeys_set_migration_enabled); - object_property_set_bool(obj, "migration-enabled", true, NULL); -} +static Property s390_skeys_props[] =3D { + DEFINE_PROP_BOOL("migration-enabled", S390SKeysState, migration_enable= d, true), +}; =20 static void s390_skeys_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); =20 dc->hotpluggable =3D false; + dc->realize =3D s390_skeys_realize; + device_class_set_props(dc, s390_skeys_props); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } =20 static const TypeInfo s390_skeys_info =3D { .name =3D TYPE_S390_SKEYS, .parent =3D TYPE_DEVICE, - .instance_init =3D s390_skeys_instance_init, .instance_size =3D sizeof(S390SKeysState), .class_init =3D s390_skeys_class_init, .class_size =3D sizeof(S390SKeysClass), --=20 2.41.0 From nobody Wed Nov 27 14:20:30 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1697814525; cv=none; d=zohomail.com; s=zohoarc; b=SmuKQL2mM4sIIoKw63dNtN15xB1R/xvqPLfl68oWmq26icit1Z8UMqNmQXhV90Zq5HztcbUUkL3W3BnN+HZSw3ETHrgOOugF81OZchNf6WyG9nQ8WT7GuPGdK/y3UIskAiFc6y8gcV26rxt/iocZfBd78ma3C0SsUtUqJA6jS44= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697814525; 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=7wV5kRaKCgHwE3bjR4jbVeLYK3PmaSJ377RUVlzO86A=; b=WSvs0l39pbXU+FPVsCr4jim9QCNmBHApN987DyTnFAIu5Y/8CVvifzjSkhBvahdGkxXpcleap1ne7JbNsJilJv4uFF40AqN88pa4VdCRyasShOMIOjIBzLRBHEO0zugMUVT6ENG9TOsNz6oKgAEcy3mJ+ek0k4povZYk6TbIzAY= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1697814525864308.4185059916398; Fri, 20 Oct 2023 08:08:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtr4n-0005Pm-B2; Fri, 20 Oct 2023 11:06:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4j-0005Ou-SQ for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4f-0001Hx-0P for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:08 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-50-BmAJBeF1Mk6MnCHLgcd2bA-1; Fri, 20 Oct 2023 11:06:01 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E27D93C1044E; Fri, 20 Oct 2023 15:06:00 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.192.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 675D52166B28; Fri, 20 Oct 2023 15:05:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697814363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7wV5kRaKCgHwE3bjR4jbVeLYK3PmaSJ377RUVlzO86A=; b=ID9CWtc5UHYxNO3RgoOBjfktuN9rZhw/5FbmARUof7yD1AU+BJwnK+Z8evrcC4tSBOHuRL b3ahMbQN7RFK4pEa/bdKgnz8elH3KxV7HVWCFdvm5KyOhYFAajcqoVTsB+g9GJtsCFljEl uYVzYQWm+2kIzQvuEmV65023F9N0KIk= X-MC-Unique: BmAJBeF1Mk6MnCHLgcd2bA-1 From: Thomas Huth To: qemu-devel@nongnu.org, Christian Borntraeger Cc: qemu-s390x@nongnu.org, Halil Pasic , Eric Farman , David Hildenbrand , Claudio Imbrenda , Juan Quintela Subject: [PATCH v2 2/3] hw/s390x/s390-stattrib: Simplify handling of the "migration-enabled" property Date: Fri, 20 Oct 2023 17:05:53 +0200 Message-ID: <20231020150554.664422-3-thuth@redhat.com> In-Reply-To: <20231020150554.664422-1-thuth@redhat.com> References: <20231020150554.664422-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 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=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: 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 @redhat.com) X-ZM-MESSAGEID: 1697814526621100001 Content-Type: text/plain; charset="utf-8" There's no need for dedicated handlers here if they don't do anything special. Acked-by: David Hildenbrand Reviewed-by: Eric Farman Signed-off-by: Thomas Huth Acked-by: Juan Quintela --- hw/s390x/s390-stattrib.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c index 220e845d12..52f9fc036e 100644 --- a/hw/s390x/s390-stattrib.c +++ b/hw/s390x/s390-stattrib.c @@ -13,6 +13,7 @@ #include "qemu/units.h" #include "migration/qemu-file.h" #include "migration/register.h" +#include "hw/qdev-properties.h" #include "hw/s390x/storage-attributes.h" #include "qemu/error-report.h" #include "exec/ram_addr.h" @@ -340,6 +341,10 @@ static void s390_stattrib_realize(DeviceState *dev, Er= ror **errp) } } =20 +static Property s390_stattrib_props[] =3D { + DEFINE_PROP_BOOL("migration-enabled", S390StAttribState, migration_ena= bled, true), +}; + static void s390_stattrib_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); @@ -347,22 +352,7 @@ static void s390_stattrib_class_init(ObjectClass *oc, = void *data) dc->hotpluggable =3D false; set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->realize =3D s390_stattrib_realize; -} - -static inline bool s390_stattrib_get_migration_enabled(Object *obj, - Error **errp) -{ - S390StAttribState *s =3D S390_STATTRIB(obj); - - return s->migration_enabled; -} - -static inline void s390_stattrib_set_migration_enabled(Object *obj, bool v= alue, - Error **errp) -{ - S390StAttribState *s =3D S390_STATTRIB(obj); - - s->migration_enabled =3D value; + device_class_set_props(dc, s390_stattrib_props); } =20 static SaveVMHandlers savevm_s390_stattrib_handlers =3D { @@ -383,10 +373,6 @@ static void s390_stattrib_instance_init(Object *obj) register_savevm_live(TYPE_S390_STATTRIB, 0, 0, &savevm_s390_stattrib_handlers, sas); =20 - object_property_add_bool(obj, "migration-enabled", - s390_stattrib_get_migration_enabled, - s390_stattrib_set_migration_enabled); - object_property_set_bool(obj, "migration-enabled", true, NULL); sas->migration_cur_gfn =3D 0; } =20 --=20 2.41.0 From nobody Wed Nov 27 14:20:30 2024 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1697814428; cv=none; d=zohomail.com; s=zohoarc; b=bOmaLkHgYXIRS3uJE261LxPckyrSMkWWL6orVeYkvNA/5Cn2Nm+bnXsGMYGrSpzGbxougfMWa16mrU4pteDUXacr/o0G43xANhoD/LihGEB3jG/YC3DETFA50ynsDEsJwvWxmu+zND+daOivbvGlXTLISGxyUueFqZsddRbZjjg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697814428; 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=AtyXc2PDXBxm2NIC2xqoUACH89ruTQjSXNR1a0bS5Cc=; b=nIT45kpkvJw8zL/ra3F8QGEZ2EjAVKnUMze3Va2wUYA60q6LwJ9xd0sQRtEC1tu7kP4MZxXBdW/1++rGL/MGa7OL3vXyrAtjggi3RhUTxPwNnnieEPwa16Qjcx2qeSQWF7G+n2VouyNDtNoqY7/Qe3s8Vzbu3vbhaRQbC7qa3FY= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1697814428136137.67049313868063; Fri, 20 Oct 2023 08:07:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtr51-0005Wr-81; Fri, 20 Oct 2023 11:06:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4n-0005QS-O7 for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtr4j-0001If-L3 for qemu-devel@nongnu.org; Fri, 20 Oct 2023 11:06:12 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-609-lbPY1wHLPTiX2BffiyVRzg-1; Fri, 20 Oct 2023 11:06:03 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8E2C0185A790; Fri, 20 Oct 2023 15:06:02 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.192.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 366982166B2B; Fri, 20 Oct 2023 15:06:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697814367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AtyXc2PDXBxm2NIC2xqoUACH89ruTQjSXNR1a0bS5Cc=; b=ZB7otEdeVr7Xr4QQrbKxHLAQNgZGIyucPGBcQ9IBFsSsLVN0b/2qHgDNWEI8U38D5/p8LM Zra7g2/mQnUJcY/zHmfD9D5HrND+k93F6pdx9//NqXu+E+V3GsBH842OORtaEgjm6eiRWF brPI1IRTizRtHaOuYxTWyf8Z6O0hZZA= X-MC-Unique: lbPY1wHLPTiX2BffiyVRzg-1 From: Thomas Huth To: qemu-devel@nongnu.org, Christian Borntraeger Cc: qemu-s390x@nongnu.org, Halil Pasic , Eric Farman , David Hildenbrand , Claudio Imbrenda , Juan Quintela Subject: [PATCH v2 3/3] hw/s390x/s390-stattrib: Don't call register_savevm_live() during instance_init() Date: Fri, 20 Oct 2023 17:05:54 +0200 Message-ID: <20231020150554.664422-4-thuth@redhat.com> In-Reply-To: <20231020150554.664422-1-thuth@redhat.com> References: <20231020150554.664422-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 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=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: 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 @redhat.com) X-ZM-MESSAGEID: 1697814430122100008 Content-Type: text/plain; charset="utf-8" We must not call register_savevm_live() from an instance_init() function (since this could be called multiple times during device introspection). Move this to the realize() function instead. Acked-by: David Hildenbrand Reviewed-by: Eric Farman Signed-off-by: Thomas Huth Acked-by: Juan Quintela --- hw/s390x/s390-stattrib.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c index 52f9fc036e..54a138011c 100644 --- a/hw/s390x/s390-stattrib.c +++ b/hw/s390x/s390-stattrib.c @@ -331,6 +331,17 @@ static const TypeInfo qemu_s390_stattrib_info =3D { =20 /* Generic abstract object: */ =20 +static SaveVMHandlers savevm_s390_stattrib_handlers =3D { + .save_setup =3D cmma_save_setup, + .save_live_iterate =3D cmma_save_iterate, + .save_live_complete_precopy =3D cmma_save_complete, + .state_pending_exact =3D cmma_state_pending, + .state_pending_estimate =3D cmma_state_pending, + .save_cleanup =3D cmma_save_cleanup, + .load_state =3D cmma_load, + .is_active =3D cmma_active, +}; + static void s390_stattrib_realize(DeviceState *dev, Error **errp) { bool ambiguous =3D false; @@ -338,7 +349,11 @@ static void s390_stattrib_realize(DeviceState *dev, Er= ror **errp) object_resolve_path_type("", TYPE_S390_STATTRIB, &ambiguous); if (ambiguous) { error_setg(errp, "storage_attributes device already exists"); + return; } + + register_savevm_live(TYPE_S390_STATTRIB, 0, 0, + &savevm_s390_stattrib_handlers, dev); } =20 static Property s390_stattrib_props[] =3D { @@ -355,24 +370,10 @@ static void s390_stattrib_class_init(ObjectClass *oc,= void *data) device_class_set_props(dc, s390_stattrib_props); } =20 -static SaveVMHandlers savevm_s390_stattrib_handlers =3D { - .save_setup =3D cmma_save_setup, - .save_live_iterate =3D cmma_save_iterate, - .save_live_complete_precopy =3D cmma_save_complete, - .state_pending_exact =3D cmma_state_pending, - .state_pending_estimate =3D cmma_state_pending, - .save_cleanup =3D cmma_save_cleanup, - .load_state =3D cmma_load, - .is_active =3D cmma_active, -}; - static void s390_stattrib_instance_init(Object *obj) { S390StAttribState *sas =3D S390_STATTRIB(obj); =20 - register_savevm_live(TYPE_S390_STATTRIB, 0, 0, - &savevm_s390_stattrib_handlers, sas); - sas->migration_cur_gfn =3D 0; } =20 --=20 2.41.0