From nobody Sun May 5 20:25:04 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1606682619; cv=none; d=zohomail.com; s=zohoarc; b=c95Riz/3kfV6sCGybqWWXfeeDeMxTB2HvEc1bpnfxI2/pw2tDgG7SODJEvIIlAL5xbyW876sCwMkYbag3RJuT9l7gGJQ5OE7XllVs4Biqj0YHBG3g82vQ2ypShpxRYVk16K9+F8tQVFbMqqjZGp7bsoJnbb3usuA9upDS6PXqX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606682619; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sgwMjHUaXq0iFZyT9JRWDKwktUp8iww4PEsAkIyqlqA=; b=msM1Sw2nY5rtNtco/VNSRW0iQVSmAqjMM9nGTbXk07ZlqymhyyjH9Fl0mA+UA3R645tLpg2CqMjN3mmc6vQ0fnLPNp8ywrAQPOE415t5FTrlmKzQuxyB1VOpVVI5Kesgds6lm1WEHTBu7vNa3lWMcf7N7JJ1UzeZDBbF9pGCvNw= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1606682619117840.292691507147; Sun, 29 Nov 2020 12:43:39 -0800 (PST) Received: from localhost ([::1]:47862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjTXl-00024G-TA for importer@patchew.org; Sun, 29 Nov 2020 15:43:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjTTu-00077U-KV for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:38 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:44117) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjTTj-0001Hz-R9 for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:38 -0500 Received: by mail-wr1-x442.google.com with SMTP id 64so12596125wra.11 for ; Sun, 29 Nov 2020 12:39:27 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id q12sm23618393wrx.86.2020.11.29.12.39.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Nov 2020 12:39:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sgwMjHUaXq0iFZyT9JRWDKwktUp8iww4PEsAkIyqlqA=; b=c7dVgZZUZkw9keZGBIkh6HRbP+9zGAZ1D4RVvf4ND6u+De8u1n9iZiEIlAhyxEUcpM /OgbYizS+xdKCerGqZr7Il5HQMt7J8Wj4Ry1eLQ3A7d+0qd7JV7Tp1I5V7uYRYYJIztU ovbjD/W/KFWte1LWIpx36wk9o2WCqxU5LP5L2yovJldPc9tCmpGYH/+xL9xfHiapVldR Uoxk5093OF+FK7m9IXpB5KFJq0Im0uhdZtMY1PgCAF0szLifVdnXe9LXiJRQIeyiNtx+ Koo06DsfiVoe0/ZjJE0d1QrbgJyY9t5MOIBI1TC0Rb3CtCe1LNZY8E1uF1+WtbF6/gue jf1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sgwMjHUaXq0iFZyT9JRWDKwktUp8iww4PEsAkIyqlqA=; b=nNf6zODdJ7G228i5m/FqwH6QcctazoetCNkFg80uErcc58tDmsIxwe92vqHMuIgs6M 3/mXT0HGOdif3gnf3yPvZMyyVrnIYMXq6qA/pCVgUJo9MnWSaDCQFX+8rTz6h4Gy+YXf AFKpBhy5oGBntad7eYMv8jgtAKb1v9uFPVIEt4C4XWnBckVDMwgUM2jcLTj2nc0TlHQv 8noBtaU3kMobrM+xVSLR9YOyw6lDa7KdTkWlyD2gOM42h/JsMSCt6UMuxiIz3PdvEuN3 u1PkRB4aWK7Pb+sMm/Jpj5ottrphYVdXRP2Hxt0uSqdeM9lBVE9j17cVudID27TinKcQ S6xg== X-Gm-Message-State: AOAM533B7POBAiXi2q5+8HfbDNR5htMoAZ6kzkegd1JRnxSHD5zaS1rS XvsjD8VwdJWHNSLukF+KPyBxJfyArwdalw== X-Google-Smtp-Source: ABdhPJzsTurGuZzuJJ5QXSL0bGopM5JBCUTYKgzfGlwvL/4Zj+2HJhnYE70zxN0GcasXFEeow8hTSg== X-Received: by 2002:a05:6000:104b:: with SMTP id c11mr24362713wrx.329.1606682366299; Sun, 29 Nov 2020 12:39:26 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 1/4] hw/core/loader.c: Track last-seen ROM in rom_check_and_register_reset() Date: Sun, 29 Nov 2020 20:39:20 +0000 Message-Id: <20201129203923.10622-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201129203923.10622-1-peter.maydell@linaro.org> References: <20201129203923.10622-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x442.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" In rom_check_and_register_reset() we detect overlaps by looking at whether the ROM blob we're currently examining is in the same address space and starts before the previous ROM blob ends. (This works because the ROM list is kept sorted in order by AddressSpace and then by address.) Instead of keeping the AddressSpace and last address of the previous ROM blob in local variables, just keep a pointer to it. This will allow us to print more useful information when we do detect an overlap. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- hw/core/loader.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 8bbb1797a4c..05052ee797e 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1165,28 +1165,35 @@ static void rom_reset(void *unused) } } =20 +/* Return true if two consecutive ROMs in the ROM list overlap */ +static bool roms_overlap(Rom *last_rom, Rom *this_rom) +{ + if (!last_rom) { + return false; + } + return last_rom->as =3D=3D this_rom->as && + last_rom->addr + last_rom->romsize > this_rom->addr; +} + int rom_check_and_register_reset(void) { - hwaddr addr =3D 0; MemoryRegionSection section; - Rom *rom; - AddressSpace *as =3D NULL; + Rom *rom, *last_rom =3D NULL; =20 QTAILQ_FOREACH(rom, &roms, next) { if (rom->fw_file) { continue; } if (!rom->mr) { - if ((addr > rom->addr) && (as =3D=3D rom->as)) { + if (roms_overlap(last_rom, rom)) { fprintf(stderr, "rom: requested regions overlap " "(rom %s. free=3D0x" TARGET_FMT_plx ", addr=3D0x" TARGET_FMT_plx ")\n", - rom->name, addr, rom->addr); + rom->name, last_rom->addr + last_rom->romsize, + rom->addr); return -1; } - addr =3D rom->addr; - addr +=3D rom->romsize; - as =3D rom->as; + last_rom =3D rom; } section =3D memory_region_find(rom->mr ? rom->mr : get_system_memo= ry(), rom->addr, 1); --=20 2.20.1 From nobody Sun May 5 20:25:04 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1606682487; cv=none; d=zohomail.com; s=zohoarc; b=CH8muItJt7cZ6eOd6qNIY15NPTxeGjX/R1KpjT//DJAO0FeGXFek+laSWLOO+kaeQoigi0zQVwkpJzbPILJF/zDfoDSLPSVEyMhCggL9FdD8PORGVbaDYyspgXDZdC4EuG9LpyDZrKfXr7Rf2VJUuxMXR/lmqjMA70M7GRakJWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606682487; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ad0c4jjqo0MMN5YLMESrd8BQ23F4DSjdkon9WAKsMB0=; b=hhe1q12Y9oEMe+rZCvLL/HNFiou0IJYrAYecfvAVNIiE3Q0EYd6jlS59TBIR6gTMvzG35IfoWx4twZjx+1KSa7P/bMVPa9qiJNw7WilLj2W1I9wz43B+dHK7wTio/TPWHdMiQk+WrDblRNesO2gxBtVnrhr+tPcxtl08kQhX6f0= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1606682487344641.2492950118816; Sun, 29 Nov 2020 12:41:27 -0800 (PST) Received: from localhost ([::1]:43520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjTVd-0000DS-Cm for importer@patchew.org; Sun, 29 Nov 2020 15:41:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjTU2-0007Gy-La for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:46 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:40444) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjTTk-0001I4-UL for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:46 -0500 Received: by mail-wr1-x442.google.com with SMTP id m6so12585149wrg.7 for ; Sun, 29 Nov 2020 12:39:28 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id q12sm23618393wrx.86.2020.11.29.12.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Nov 2020 12:39:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ad0c4jjqo0MMN5YLMESrd8BQ23F4DSjdkon9WAKsMB0=; b=vVcU7EJStD2EJSoZycUfP6WmFxf2NRoJJLdpqDfVuEAZEanLGe77AcudBBMuNQCLZc gn66ZDKyQrMZU+BWqvKk3ZCj3+/MWSl9euYqIP6O8670a/9/UsWoLsfnAT7m1yNy1ECN 7i9ME5ICjIJd3l83LdJY+XKdjIsS4QnxCm/9BOzA4uvMfy/jhNRGpoS3o56H53PM87Kt Yq8i5fZPaK/6R3tTMAtMa1+bN5ETyM0apIIG8uYaio8Gt68yflgLCw0ozFJaBmYZ80Mg n2zLYbaB8L2cPMifCYe7M3XCXO+Vaq6U0Pbs2bkh7n2LUc1fRfKArKoDGF0ygkVhmTav L+/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ad0c4jjqo0MMN5YLMESrd8BQ23F4DSjdkon9WAKsMB0=; b=aXLN+qG5WBROzXE+p33oaJtT+NR0ojYk/yEGd810L3eEQzi4e8xBxCBZ7hZSlRe0Ub /0/WNnlBJSPAgoR+RF+oqUgUkyMbmEQ3vM/X8JQ49/w/VvxzVyGTmFNV4JbYHMBeaMwh OCUxDhWXay/nfQzM81ArT4Ub51EB8vN3izWeGyVJZJrfFcXDFjR4zXlfpZFHHC+1otfD 0k1RPzTrzTmR+AKAGWaBjkCFF09eRnAuiCryeeU+8M4SMncvYfGcJ1DF0IhHyzekDUmv ZPywc6UA/mWcqRX6evY0thtCAEChi5aqsMg6NoJeNs+zFgstkhARV7+DwI5gmzKnfHaP K3wA== X-Gm-Message-State: AOAM533hxNQxTy1Q/4mfwZwIEp1M7miquANTxxLzJJrmk45wxbcjn+ZH 3o21T21xXwhwdf9ZTs79LGCmJTyO9NJRIA== X-Google-Smtp-Source: ABdhPJznYnx7e9dwHpmHGGkG/Ly4orXy/5NS16sZoFifde5QUHDFARggvhRvZVCDvEmJpo+TdrRwmg== X-Received: by 2002:adf:fc49:: with SMTP id e9mr24001784wrs.31.1606682367358; Sun, 29 Nov 2020 12:39:27 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 2/4] hw/core/loader.c: Improve reporting of ROM overlap errors Date: Sun, 29 Nov 2020 20:39:21 +0000 Message-Id: <20201129203923.10622-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201129203923.10622-1-peter.maydell@linaro.org> References: <20201129203923.10622-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x442.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" In rom_check_and_register_reset() we report to the user if there is a "ROM region overlap". This has a couple of problems: * the reported information is not very easy to intepret * the function just prints the overlap to stderr (and relies on its single callsite in vl.c to do an error_report() and exit) * only the first overlap encountered is diagnosed Make this function use error_report() and error_printf() and report a more user-friendly report with all the overlaps diagnosed. Sample old output: rom: requested regions overlap (rom dtb. free=3D0x0000000000008000, addr=3D= 0x0000000000000000) qemu-system-aarch64: rom check and register reset failed Sample new output: qemu-system-aarch64: Some ROM regions are overlapping These ROM regions might have been loaded by direct user request or by defau= lt. They could be BIOS/firmware images, a guest kernel, initrd or some other fi= le loaded into guest memory. Check whether you intended to load all this guest code, and whether it has = been built to load to the correct addresses. The following two regions overlap (in the cpu-memory-0 address space): phdr #0: /home/petmay01/linaro/qemu-misc-tests/ldmia-fault.axf (addresses= 0x0000000000000000 - 0x0000000000008000) dtb (addresses 0x0000000000000000 - 0x0000000000100000) The following two regions overlap (in the cpu-memory-0 address space): phdr #1: /home/petmay01/linaro/qemu-misc-tests/bad-psci-call.axf (address= es 0x0000000040000000 - 0x0000000040000010) phdr #0: /home/petmay01/linaro/qemu-misc-tests/bp-test.elf (addresses 0x0= 000000040000000 - 0x0000000040000020) Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- The sample output is from a completely bogus commandline where I just loaded multiple clashing ELF files I had to hand using -device loader. --- hw/core/loader.c | 48 ++++++++++++++++++++++++++++++++++++++++++------ softmmu/vl.c | 1 - 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 05052ee797e..de3c319e34f 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1175,10 +1175,42 @@ static bool roms_overlap(Rom *last_rom, Rom *this_r= om) last_rom->addr + last_rom->romsize > this_rom->addr; } =20 +static const char *rom_as_name(Rom *rom) +{ + const char *name =3D rom->as ? rom->as->name : NULL; + return name ?: "anonymous"; +} + +static void rom_print_overlap_error_header(void) +{ + error_report("Some ROM regions are overlapping"); + error_printf( + "These ROM regions might have been loaded by " + "direct user request or by default.\n" + "They could be BIOS/firmware images, a guest kernel, " + "initrd or some other file loaded into guest memory.\n" + "Check whether you intended to load all this guest code, and " + "whether it has been built to load to the correct addresses.\n"); +} + +static void rom_print_one_overlap_error(Rom *last_rom, Rom *rom) +{ + error_printf( + "\nThe following two regions overlap (in the %s address space):\n", + rom_as_name(rom)); + error_printf( + " %s (addresses 0x" TARGET_FMT_plx " - 0x" TARGET_FMT_plx ")\n", + last_rom->name, last_rom->addr, last_rom->addr + last_rom->romsize= ); + error_printf( + " %s (addresses 0x" TARGET_FMT_plx " - 0x" TARGET_FMT_plx ")\n", + rom->name, rom->addr, rom->addr + rom->romsize); +} + int rom_check_and_register_reset(void) { MemoryRegionSection section; Rom *rom, *last_rom =3D NULL; + bool found_overlap =3D false; =20 QTAILQ_FOREACH(rom, &roms, next) { if (rom->fw_file) { @@ -1186,12 +1218,12 @@ int rom_check_and_register_reset(void) } if (!rom->mr) { if (roms_overlap(last_rom, rom)) { - fprintf(stderr, "rom: requested regions overlap " - "(rom %s. free=3D0x" TARGET_FMT_plx - ", addr=3D0x" TARGET_FMT_plx ")\n", - rom->name, last_rom->addr + last_rom->romsize, - rom->addr); - return -1; + if (!found_overlap) { + found_overlap =3D true; + rom_print_overlap_error_header(); + } + rom_print_one_overlap_error(last_rom, rom); + /* Keep going through the list so we report all overlaps */ } last_rom =3D rom; } @@ -1200,6 +1232,10 @@ int rom_check_and_register_reset(void) rom->isrom =3D int128_nz(section.size) && memory_region_is_rom(sec= tion.mr); memory_region_unref(section.mr); } + if (found_overlap) { + return -1; + } + qemu_register_reset(rom_reset, NULL); roms_loaded =3D 1; return 0; diff --git a/softmmu/vl.c b/softmmu/vl.c index e6e0ad5a925..aa6fd3243d5 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -4459,7 +4459,6 @@ void qemu_init(int argc, char **argv, char **envp) qemu_run_machine_init_done_notifiers(); =20 if (rom_check_and_register_reset() !=3D 0) { - error_report("rom check and register reset failed"); exit(1); } =20 --=20 2.20.1 From nobody Sun May 5 20:25:04 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1606682488; cv=none; d=zohomail.com; s=zohoarc; b=HqmKODaRYokLAeH+aRSVHujiShTnAlx2vW6/Zatramr3xnbaxRphddWmgJLb7p3c7DykDUik//CZiUDAr/cWmIvlgRmLbWdV+5cSuI3toTTtsT652MilCQH130Yz4VqpOK+LxdwTFqY2gEcIRp9flu7n2I1TSKkZhIIP3Vw/8/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606682488; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=I0qwXA+9gejr5uvpg7PQ9uQgqOS7NlfKkSTdv7SC2QI=; b=k5BD2wG/enpks4qhcN5V0USbbTSYCntMnjShrRBlTrPqtTEXCHZNwMrhFMGfHeIGsxFMEr8YuB1WBuPEYjaI2/LTHi/JWC7w7qRiK2oNVHGpKOMdbPoAZkyRXvcROS4G7fDa56Kiw6flL0QBLT/yAcSDRal93TVx/sBEyGco4Gc= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160668248812214.418335221682696; Sun, 29 Nov 2020 12:41:28 -0800 (PST) Received: from localhost ([::1]:43602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjTVe-0000FL-0O for importer@patchew.org; Sun, 29 Nov 2020 15:41:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55836) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjTU3-0007I1-SL for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:47 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:40445) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjTTm-0001IA-3l for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:47 -0500 Received: by mail-wr1-x443.google.com with SMTP id m6so12585197wrg.7 for ; Sun, 29 Nov 2020 12:39:29 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id q12sm23618393wrx.86.2020.11.29.12.39.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Nov 2020 12:39:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I0qwXA+9gejr5uvpg7PQ9uQgqOS7NlfKkSTdv7SC2QI=; b=VFjWvij+Omnf/xjpVSDcX3JvCLOIZ+WwnfgT/8+bOoyEIyP0t4eZEaNQzyH/7dW77Q CHkMiqz23k5ED5difVOEkb0s89/XJirLD4GxxsGMFH+aNY44Z8H8rpmA3s4BDhSDm/pg 23xsVOOdPq+CKd8fNClwn67zwo7ZwnKOW0pAH2MWaMdt0OIExc5OWz+AnO0PgUdxcMuV wAYq0JQOIyP2SLC8Wt3sfbNuAhsfZwu3/vVy19TXEyD3ccTzyeph4dDcZ52IKtP9U3mx VBD+n0g+5tneEWxa/LydDbKIw6pMWENTMSy5gfB8izQVCdTnYtUUTQgdnvvfXaWfFhZi Dk+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=I0qwXA+9gejr5uvpg7PQ9uQgqOS7NlfKkSTdv7SC2QI=; b=VNqcLeRvZVn2tq3j/ktARQWFYFs4CBU0baIfXWaaO/GzXA4CZqaQFDOsbK/uDHcsH9 xX96AbvaVFCI9jpTIQcWrqZsgbCKTGF8tldXbxet/ziSFE7KetCSJLYZxe96acHTBVlr j0clUf55P7RmyzNGrEyz22akoXsOC6FvnC5NBYE3A5Vo75/+Q+uMnSPkFUK2walRPSAN ZzNXN8GzzpnwJ7xAX+XtXVEGjxjuLd1KUd2zlC4HfK1tn7b6lZpDD++ydUCOsysp+MLP VU9xX/K4XbFU/LkfuzLhkrzf3oVYK0EoIEM3Jm/YDiEmawdEeIW+qwPZE+iuO+k0mERd IeWA== X-Gm-Message-State: AOAM532nOF9KiUs3M/tSVhiyp8UAn9EPsvEcUB03knjWd2A+bg0PQB2U /Ux/tCCYLxLJ2+dl8ToCOXqtWnX65OKUhw== X-Google-Smtp-Source: ABdhPJxNlIuspWZPxG38hY72ANKFFDCHD9VK1nzXaSyz4Vv+2tWZu1nIKP8hEyTkp5xxPOMqU3+7WQ== X-Received: by 2002:adf:e54f:: with SMTP id z15mr24663384wrm.159.1606682368489; Sun, 29 Nov 2020 12:39:28 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 3/4] elf_ops.h: Don't truncate name of the ROM blobs we create Date: Sun, 29 Nov 2020 20:39:22 +0000 Message-Id: <20201129203923.10622-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201129203923.10622-1-peter.maydell@linaro.org> References: <20201129203923.10622-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::443; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x443.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Currently the load_elf code assembles the ROM blob name into a local 128 byte fixed-size array. Use g_strdup_printf() instead so that we don't truncate the pathname if it happens to be long. (This matters mostly for monitor 'info roms' output and for the error messages if ROM blobs overlap.) Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- include/hw/elf_ops.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h index 6fdff3dced5..53e0152af53 100644 --- a/include/hw/elf_ops.h +++ b/include/hw/elf_ops.h @@ -330,7 +330,6 @@ static int glue(load_elf, SZ)(const char *name, int fd, uint64_t addr, low =3D (uint64_t)-1, high =3D 0; GMappedFile *mapped_file =3D NULL; uint8_t *data =3D NULL; - char label[128]; int ret =3D ELF_LOAD_FAILED; =20 if (read(fd, &ehdr, sizeof(ehdr)) !=3D sizeof(ehdr)) @@ -544,7 +543,8 @@ static int glue(load_elf, SZ)(const char *name, int fd, */ if (mem_size !=3D 0) { if (load_rom) { - snprintf(label, sizeof(label), "phdr #%d: %s", i, name= ); + g_autofree char *label =3D + g_strdup_printf("phdr #%d: %s", i, name); =20 /* * rom_add_elf_program() takes its own reference to --=20 2.20.1 From nobody Sun May 5 20:25:04 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1606682743; cv=none; d=zohomail.com; s=zohoarc; b=lEje3x16nCVf10F98WJfp7Y7wB1YLNv+ikzGPMZqkBtFTEgwqat1BQPcPITF9k/2+osMkPgd5A4WimXp23W4BJtr/aJGpPkBAVk61N0QL9ECg1ZiLyedpmRFN393DnBetifjwAhcw9iNLLxM8mxznoog1f+cfYTHdz45a5ZZDMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606682743; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7CciqfkCFJWruhtp6R5XMHKgV21axKR+IckWxPTjD2k=; b=hQdNWfGNX6//a9NP90aNtxpWxliTrzEIuT2VbF5RV7DIcJO+V1ZQUUMW4XkmTxQV3NQGDngUDu2xpar+v2E+IXwjVeWrXaaE653n05mummyjA9MURvmV0WuB+86p3s3HpPW38pVxVBs+aaGk1fCTpc/3kUykOykFXxGFRbquNpQ= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1606682743420854.9115946916077; Sun, 29 Nov 2020 12:45:43 -0800 (PST) Received: from localhost ([::1]:53890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjTZk-00053P-80 for importer@patchew.org; Sun, 29 Nov 2020 15:45:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55838) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjTU4-0007IE-1u for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:48 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:42209) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjTTm-0001IE-Ve for qemu-devel@nongnu.org; Sun, 29 Nov 2020 15:39:47 -0500 Received: by mail-wr1-x443.google.com with SMTP id l1so12588647wrb.9 for ; Sun, 29 Nov 2020 12:39:30 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id q12sm23618393wrx.86.2020.11.29.12.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Nov 2020 12:39:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7CciqfkCFJWruhtp6R5XMHKgV21axKR+IckWxPTjD2k=; b=jOSwrIYWrOBhgVDROjHbF7HtRU/WmZ5F32ZKtoZRYH233d6gJjfqFiVjuQpbaSQF5j o6LCs/W4OAI9E3PEOWx5FwNvQPl42C6ss56W1t32qB5d482qDrIgDsJZmleVkFUPslVh 8bIzRoAue0xJirDAXpqHaxIx8yczjFHoxTiAdKI0uCr6QYOjuN4KlsyZYmotWSVKbo6o FbtZUEOI9QSQUBG9q/5GhjIDCGOChG9uKLSuC5afpJfSL1nWLWOb6oLqSUMIFQbJsbYT dru0FeG9p1XupRjlR92oLB+zodtg6zHUHfc46F72ML/cxun6dR2iAixUsblVLDEi0hcZ 1JKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7CciqfkCFJWruhtp6R5XMHKgV21axKR+IckWxPTjD2k=; b=QBsF++m17kAya4PAUtdm9R6pwgqgCaIG9eneWF7zziQZ80XyM+jmC8rmAxPA+4v5l3 m+af/k4PxWbz3KJE3APWHZ4ggL4oDBwEaCPQMMmXECbKnjJ3el+/TmUn3COhD3ayzKnB M4Nxai5yl+wAGgt3FYBldZE7B0FTYQ/NaNC+5veruHbN9YU9MOllQqK+ppL5cWRlvfoX f5ImsjBhwfeSF7y5xesxUrlTBXX46bs+qtOBR0C2/WzeA2x5dDtspJKla6Ts0kPzqtYk REW+pg/U+Lg5YjhrXMGb0BCqoboSqDuSrWJEW9rDRLMwuAaLJrJ6zcfI0YBjABK+6Af/ IclA== X-Gm-Message-State: AOAM53346e3jI5yqM/jJssKgSGAzu/koyRxyKk8yisgIAvsziRc42EaL nJhbNAANCz39lVz80WoPTTU4OwHOEljwKw== X-Google-Smtp-Source: ABdhPJyrtp8LhJVvj/6RkZ9UGNlmRZOjcmp1rHbjIUlXfoo/EWFco7It3tGA5F/RwtTTV055oxWsLw== X-Received: by 2002:a5d:4591:: with SMTP id p17mr24974652wrq.361.1606682369560; Sun, 29 Nov 2020 12:39:29 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 4/4] elf_ops.h: Be more verbose with ROM blob names Date: Sun, 29 Nov 2020 20:39:23 +0000 Message-Id: <20201129203923.10622-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201129203923.10622-1-peter.maydell@linaro.org> References: <20201129203923.10622-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::443; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x443.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Instead of making the ROM blob name something like: phdr #0: /home/petmay01/linaro/qemu-misc-tests/ldmia-fault.axf make it a little more self-explanatory for people who don't know ELF format details: /home/petmay01/linaro/qemu-misc-tests/ldmia-fault.axf ELF program header = segment 0 Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- This seems nicer to me, but it's a matter of taste, so if people prefer the current name form we should probably leave it be. --- include/hw/elf_ops.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h index 53e0152af53..8e8436831d2 100644 --- a/include/hw/elf_ops.h +++ b/include/hw/elf_ops.h @@ -544,7 +544,8 @@ static int glue(load_elf, SZ)(const char *name, int fd, if (mem_size !=3D 0) { if (load_rom) { g_autofree char *label =3D - g_strdup_printf("phdr #%d: %s", i, name); + g_strdup_printf("%s ELF program header segment %d", + name, i); =20 /* * rom_add_elf_program() takes its own reference to --=20 2.20.1