From nobody Mon Feb 9 23:01:07 2026 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15293747902341013.5257012922065; Mon, 18 Jun 2018 19:19:50 -0700 (PDT) Received: from localhost ([::1]:38571 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fV6FJ-00026Q-E2 for importer@patchew.org; Mon, 18 Jun 2018 22:19:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fV5hT-00012X-2f for qemu-devel@nongnu.org; Mon, 18 Jun 2018 21:44:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fV5hR-00084i-US for qemu-devel@nongnu.org; Mon, 18 Jun 2018 21:44:51 -0400 Received: from mail-ot0-x244.google.com ([2607:f8b0:4003:c0f::244]:32773) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fV5hR-00084Z-OO; Mon, 18 Jun 2018 21:44:49 -0400 Received: by mail-ot0-x244.google.com with SMTP id h6-v6so20789624otj.0; Mon, 18 Jun 2018 18:44:49 -0700 (PDT) Received: from localhost ([2600:1700:70:e488:b0ee:9bda:ee6f:91be]) by smtp.gmail.com with ESMTPSA id t77-v6sm7293535oie.3.2018.06.18.18.44.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Jun 2018 18:44:47 -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=qM7TMfZHVkWFdrMEC1+1ffvTVguQ/3VrwQVoT10JH14=; b=mFc38u/p8aK3a1Ov+0ElQ5MG4rB37efgAJiUAuQZQ4i208Kp5V85cSaDw3e4gNSzkU K0OR39EfR1CT22trjt/QWpoH3YiPLzyZeIwEtmcmt+ZOAXKqWl+xLJWVQLt1SLBsVnOJ NnBgReAxH06ZJB9QAekWAfKpfKCuXehMZOJzfnOUO+51SQoT4j4NUTAu06ONjgutOn6d bsNFNClI+bgqjh8sFf0us8Di0Xlqt8V8BYqKazsK6WiPZS+n/62r59vAW6vw6YwHToQ4 +J0qx5aSXxAnyj2CIWyPT4w0DtE/qsgsctpuqJdBAhzp2iSUSxL+AUxuxUhea5MT2zDD 8QJA== 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=qM7TMfZHVkWFdrMEC1+1ffvTVguQ/3VrwQVoT10JH14=; b=p+Xyxxw/QPqeAl5qaX/++DPtwSpuHk0k0QPowyglxLNO93EiCqhmrtE1hhDoE0QJH/ IZI1ISyKEcznpUBUuv5RxgAM7qxDqmHDu2/ew51gIMy5iiTfozkN1A+mtei3BlLZA5fX /DqzLLcCwh1Nh31FmoeQmftTQ71aDrmxkjYsIKGyvbUYyFCX6V69913MlBEDWbqMLDf/ PRWxBkY0UF1Ys++G/TDjU5DTQ7PhM2Pcasr7ldB9yuPrQRneTXkyLMXtv8Y/p++Vn+hL XVnkNekR9cSjnUIljPW4aJcKSsIGZepsxW9671HGPUrejoYd9fre2BBTrXFGb5pNjV3n PSbQ== X-Gm-Message-State: APt69E04JVk1J6pmS+379wdnJQm8d2GNN9zLlK1maMT+F9EFB4dBXlzV yZgVu8dBXEtqb4ILfRZ1TTEHxBdQ X-Google-Smtp-Source: ADUXVKK2KSrjao0PfCYm4vec0E7zaQ8R7NXvfF0M4glVmz34MqIb47zRac9wOssVT64LdxVvwQGZRQ== X-Received: by 2002:a9d:2713:: with SMTP id r19-v6mr9899208ota.93.1529372688583; Mon, 18 Jun 2018 18:44:48 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Date: Mon, 18 Jun 2018 20:41:47 -0500 Message-Id: <20180619014319.28272-22-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180619014319.28272-1-mdroth@linux.vnet.ibm.com> References: <20180619014319.28272-1-mdroth@linux.vnet.ibm.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4003:c0f::244 Subject: [Qemu-devel] [PATCH 021/113] loader: don't perform overlapping address check for memory region ROM images 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: Mark Cave-Ayland , qemu-stable@nongnu.org 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: Mark Cave-Ayland All memory region ROM images have a base address of 0 which causes the over= lapping address check to fail if more than one memory region ROM image is present, = or an existing ROM image is loaded at address 0. Make sure that we ignore the overlapping address check in rom_check_and_register_reset() if this is a memory region ROM image. In par= ticular this fixes the "rom: requested regions overlap" error on startup when tryin= g to run qemu-system-sparc with a -kernel image since commit 7497638642: "tcx: s= witch to load_image_mr() and remove prom_addr hack". Suggested-by: Peter Maydell Reviewed-by: Peter Maydell Signed-off-by: Mark Cave-Ayland (cherry picked from commit ca316c11526a1bc221fb542bdce6bac7238dde69) Signed-off-by: Michael Roth --- hw/core/loader.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 91669d65aa..c08f130461 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1104,20 +1104,22 @@ int rom_check_and_register_reset(void) if (rom->fw_file) { continue; } - if ((addr > rom->addr) && (as =3D=3D rom->as)) { - fprintf(stderr, "rom: requested regions overlap " - "(rom %s. free=3D0x" TARGET_FMT_plx - ", addr=3D0x" TARGET_FMT_plx ")\n", - rom->name, addr, rom->addr); - return -1; + if (!rom->mr) { + if ((addr > rom->addr) && (as =3D=3D rom->as)) { + fprintf(stderr, "rom: requested regions overlap " + "(rom %s. free=3D0x" TARGET_FMT_plx + ", addr=3D0x" TARGET_FMT_plx ")\n", + rom->name, addr, rom->addr); + return -1; + } + addr =3D rom->addr; + addr +=3D rom->romsize; + as =3D rom->as; } - addr =3D rom->addr; - addr +=3D rom->romsize; section =3D memory_region_find(rom->mr ? rom->mr : get_system_memo= ry(), rom->addr, 1); rom->isrom =3D int128_nz(section.size) && memory_region_is_rom(sec= tion.mr); memory_region_unref(section.mr); - as =3D rom->as; } qemu_register_reset(rom_reset, NULL); roms_loaded =3D 1; --=20 2.11.0