From nobody Wed Oct 29 22:56:10 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; 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 1526045376106363.2888381244792; Fri, 11 May 2018 06:29:36 -0700 (PDT) Received: from localhost ([::1]:44635 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fH874-0002Kc-Qd for importer@patchew.org; Fri, 11 May 2018 09:29:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fH7zG-00029G-CQ for qemu-devel@nongnu.org; Fri, 11 May 2018 09:21:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fH7zE-0005CA-8R for qemu-devel@nongnu.org; Fri, 11 May 2018 09:21:30 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49626 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fH7zE-0005By-4O; Fri, 11 May 2018 09:21:28 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B31CE407607F; Fri, 11 May 2018 13:21:27 +0000 (UTC) Received: from t460s.redhat.com (ovpn-117-7.ams2.redhat.com [10.36.117.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id BCC55100297E; Fri, 11 May 2018 13:21:21 +0000 (UTC) From: David Hildenbrand To: qemu-devel@nongnu.org Date: Fri, 11 May 2018 15:19:50 +0200 Message-Id: <20180511131953.12905-15-david@redhat.com> In-Reply-To: <20180511131953.12905-1-david@redhat.com> References: <20180511131953.12905-1-david@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Fri, 11 May 2018 13:21:27 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Fri, 11 May 2018 13:21:27 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'david@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 Subject: [Qemu-devel] [PATCH v2 14/17] s390x/sclp: make sure ram_size and maxram_size stay in sync 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: Pankaj Gupta , Eduardo Habkost , "Michael S . Tsirkin" , Cornelia Huck , David Hildenbrand , Markus Armbruster , Alexander Graf , Christian Borntraeger , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Paolo Bonzini , Marcel Apfelbaum , Igor Mammedov , Luiz Capitulino , David Gibson , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" On s390x, we sometimes have to shrink ram_size in order to be able to correctly indicate the size to the guest. In case maxmem is not set, ram_size and maxram_size should always be kept equal. Make sure to also fixup maxram_size if necessary. In case maxmem is set, we really want to bail out in case we have to round down, as it basically can screw up the size of the device memory area later on. Pleas note that this fixup ususally does not happen with sane values for the ram size. Signed-off-by: David Hildenbrand --- hw/s390x/sclp.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c index 047d577313..0757914374 100644 --- a/hw/s390x/sclp.c +++ b/hw/s390x/sclp.c @@ -21,6 +21,8 @@ #include "hw/s390x/event-facility.h" #include "hw/s390x/s390-pci-bus.h" #include "hw/s390x/ipl.h" +#include "qemu/error-report.h" + =20 static inline SCLPDevice *get_sclp_device(void) { @@ -318,9 +320,19 @@ static void sclp_memory_init(SCLPDevice *sclp) * down to align with the nearest increment boundary. */ initial_mem =3D initial_mem >> increment_size << increment_size; =20 - machine->ram_size =3D initial_mem; - /* let's propagate the changed ram size into the global variable. */ - ram_size =3D initial_mem; + /* also shrink maxram_size in case we don't have maxmem configured */ + if (initial_mem !=3D machine->ram_size) { + if (machine->ram_size < machine->maxram_size) { + error_report("Ram size ('" RAM_ADDR_FMT "') had to be rounded " + "down to ('" RAM_ADDR_FMT "'), maxmem not support= ed", + machine->ram_size, initial_mem); + exit(1); + } + /* propagate the changed ram size into the different places */ + machine->ram_size =3D initial_mem; + ram_size =3D initial_mem; + machine->maxram_size =3D initial_mem; + } } =20 static void sclp_init(Object *obj) --=20 2.14.3