From nobody Tue Nov 4 15:26:24 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1530217543376825.2560329999333; Thu, 28 Jun 2018 13:25:43 -0700 (PDT) Received: from localhost ([::1]:38385 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYdU6-0007IH-JW for importer@patchew.org; Thu, 28 Jun 2018 16:25:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38122) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYdAk-0007Jx-45 for qemu-devel@nongnu.org; Thu, 28 Jun 2018 16:05:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYdAi-0000f6-UQ for qemu-devel@nongnu.org; Thu, 28 Jun 2018 16:05:42 -0400 Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]:51036) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fYdAi-0000dP-Nb for qemu-devel@nongnu.org; Thu, 28 Jun 2018 16:05:40 -0400 Received: by mail-wm0-x22e.google.com with SMTP id e16-v6so10987406wmd.0 for ; Thu, 28 Jun 2018 13:05:40 -0700 (PDT) Received: from 640k.lan ([82.84.124.111]) by smtp.gmail.com with ESMTPSA id 127-v6sm6211110wmd.18.2018.06.28.13.05.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jun 2018 13:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=1w0ykkM392cue2WJE2KlhI1CWjJDHSb9ao6Ec7SquuI=; b=lafvf0UqYN1gONEGF2g3o9BGASpCv1JFFiUv63rx0FBJ1yp5idJUwiQPaoeUdfNMAg JyIQgdchZy4nqcRSI/BC5FF9gJsg2uCfl9oD9iK+PFFLPATklK/dnmxxLVWgK+uYZtud Ww5b75kxUqeZ6IYemc7ghJPSss4vmj2+V0MrJ2FnjpnLMtobHn1WKS+mQ2NcsfXKyeUM JErPn8b9tflV/+5xb8KDPufYvv1qIOfEUyIW32m0aCyyl4UjU7vhKyPtQtKnupZ2qNpN XdoPlvh5oVMTodSoVmME9tS5dlH9XRdjv/Dcm3h5JhmZbfhv9KaaSNJt92SqGsTePB6/ biEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=1w0ykkM392cue2WJE2KlhI1CWjJDHSb9ao6Ec7SquuI=; b=GJPkyi/oNBNbQIj5HW3LgkSbOULZgdPeGDldyiA/cYbbKYHYiG3FtYHP7hn/g38fHb jVeyvqS83tNlESlwUqZdLidUhb/d1+9/ZZ07vPVcjoeI3Mxr95MYY31GH9kdvWMOAv9l xbbZELlnJGwfWCiH8V0s8tHOFQHmXZNZ4A5VxmvHdEnZxVxUOaoQP49vCaW9HNGYdTid j4GGyUwJstMTJSl189ugiA7PummRo4XilJ3vnE+qoi4grX+pFJw9vhnK8YizQxe9Y2zT MIhEZZMZBSnR0RF5YurhS8tnkAqRxf5kk8Z8+7LQs6UQ6RwBUpn+3p0rHTf8qPH8DzyX o0mA== X-Gm-Message-State: APt69E30a2ct0+Q1nzdKJ2Ro+9pjQmC8GFUJBCNm1URNZFDiLguM8C74 YSfUk6jqls3HvgVQzeyrJp+at3+b X-Google-Smtp-Source: AAOMgpe9IiMlbKAAux20IeKra8azJqvbNpLXxtZVouqbTIbzn3qJ8X7Hicw2Q3zpiEJH/ZxiM9edUQ== X-Received: by 2002:a1c:5b0d:: with SMTP id p13-v6mr9384580wmb.53.1530216339415; Thu, 28 Jun 2018 13:05:39 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Thu, 28 Jun 2018 22:04:36 +0200 Message-Id: <1530216310-52873-27-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1530216310-52873-1-git-send-email-pbonzini@redhat.com> References: <1530216310-52873-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::22e Subject: [Qemu-devel] [PULL 26/60] nvdimm: convert nvdimm_mr into a pointer X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand This way we can easily check if the region has already been inititalized without having to rely on the size of an uninitialized region being 0. Free the region in nvdimm_finalize() and not in unrealize() as we will allow to create the region before realization in following patches. Reviewed-by: David Gibson Reviewed-by: Igor Mammedov Signed-off-by: David Hildenbrand Message-Id: <20180619134141.29478-11-david@redhat.com> Signed-off-by: Paolo Bonzini --- hw/mem/nvdimm.c | 17 +++++++++++++---- include/hw/mem/nvdimm.h | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c index 7260c9c..afd3912 100644 --- a/hw/mem/nvdimm.c +++ b/hw/mem/nvdimm.c @@ -43,7 +43,7 @@ static void nvdimm_set_label_size(Object *obj, Visitor *v= , const char *name, Error *local_err =3D NULL; uint64_t value; =20 - if (memory_region_size(&nvdimm->nvdimm_mr)) { + if (nvdimm->nvdimm_mr) { error_setg(&local_err, "cannot change property value"); goto out; } @@ -71,11 +71,18 @@ static void nvdimm_init(Object *obj) NULL, NULL); } =20 +static void nvdimm_finalize(Object *obj) +{ + NVDIMMDevice *nvdimm =3D NVDIMM(obj); + + g_free(nvdimm->nvdimm_mr); +} + static MemoryRegion *nvdimm_get_memory_region(PCDIMMDevice *dimm, Error **= errp) { NVDIMMDevice *nvdimm =3D NVDIMM(dimm); =20 - return &nvdimm->nvdimm_mr; + return nvdimm->nvdimm_mr; } =20 static void nvdimm_realize(PCDIMMDevice *dimm, Error **errp) @@ -102,9 +109,10 @@ static void nvdimm_realize(PCDIMMDevice *dimm, Error *= *errp) return; } =20 - memory_region_init_alias(&nvdimm->nvdimm_mr, OBJECT(dimm), + nvdimm->nvdimm_mr =3D g_new(MemoryRegion, 1); + memory_region_init_alias(nvdimm->nvdimm_mr, OBJECT(dimm), "nvdimm-memory", mr, 0, pmem_size); - nvdimm->nvdimm_mr.align =3D align; + nvdimm->nvdimm_mr->align =3D align; } =20 /* @@ -167,6 +175,7 @@ static TypeInfo nvdimm_info =3D { .class_init =3D nvdimm_class_init, .instance_size =3D sizeof(NVDIMMDevice), .instance_init =3D nvdimm_init, + .instance_finalize =3D nvdimm_finalize, }; =20 static void nvdimm_register_types(void) diff --git a/include/hw/mem/nvdimm.h b/include/hw/mem/nvdimm.h index 9340631..c5c9b3c 100644 --- a/include/hw/mem/nvdimm.h +++ b/include/hw/mem/nvdimm.h @@ -74,7 +74,7 @@ struct NVDIMMDevice { * it's the PMEM region in NVDIMM device, which is presented to * guest via ACPI NFIT and _FIT method if NVDIMM hotplug is supported. */ - MemoryRegion nvdimm_mr; + MemoryRegion *nvdimm_mr; =20 /* * The 'on' value results in the unarmed flag set in ACPI NFIT, --=20 1.8.3.1