From nobody Wed May 15 10:36:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) client-ip=209.85.128.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621487751; cv=none; d=zohomail.com; s=zohoarc; b=BFs8H+umvhN0SClJT4KIFBLPbz4EgoQZklETfiFj0LU6jUjwpBBGX84+6yUinK8qdrlfmiSakWx1yuC9uH293hBXnh/7TzEBR3npA1iuu9t4GHkyzPMGkUCTz3VV+hco+8WqNKnOVQcMzeV66tBSRH/YmvrVjaI6aC13Ys+uveg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621487751; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TLM11x+CwA7dtccb1VwoEJf/uXmEpf+a+h0Tdo5AASA=; b=hUZAIXBfAnpEUFvBu5SlLMc3NdP5pu3XBmNoEm8Mwyii9Ob0iAy6wSOLfRmwEYIV/sD+DhPgvD+ET76HFWIcQ838DvkdV/MwabrIvwkxxhfznRqTKzqCFyquvTM0U/yk4xcsbYWO5jkPmieIr/7H+Tb+tvlFELx6P0eMYv5/eZE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by mx.zohomail.com with SMTPS id 1621487751409759.5476220339168; Wed, 19 May 2021 22:15:51 -0700 (PDT) Received: by mail-wm1-f45.google.com with SMTP id b7so7779848wmh.5 for ; Wed, 19 May 2021 22:15:50 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (31.red-83-51-215.dynamicip.rima-tde.net. [83.51.215.31]) by smtp.gmail.com with ESMTPSA id v18sm1938897wro.18.2021.05.19.22.15.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 May 2021 22:15:49 -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 :mime-version:content-transfer-encoding; bh=TLM11x+CwA7dtccb1VwoEJf/uXmEpf+a+h0Tdo5AASA=; b=owbqZCRqWupKJwYUVgi5yJSS+TDgiXrJzgnOCT1KlQ5+3cMbDB5xWc1Mtn+HeWeWg8 zT2xxHrjRn08Goh5ZWCJhC9FHsiiOBriF+pc1uMSkQ2JH/rcIWzhKWTUmFQVUyW/5nNc 1hObPoHPygemN1uhyC+Wgz6CAau6ZaIXnmQDyZl88ebDwpzKS2/io/YMZXg4yXggVomr JntIww/3Rs81OWgkyr46GDWQMmF76b4xsQzI0yVM6oBVPFt+u8iwj6O66Kfafu9X6PZA Zc/EAhb1a3PVcLyLpg3yih7aUFuvxQgf4cb905VnIiV4qGKO9MxFPgpSqyhIQvUXEC+z iIzQ== 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:mime-version:content-transfer-encoding; bh=TLM11x+CwA7dtccb1VwoEJf/uXmEpf+a+h0Tdo5AASA=; b=tgqCSS9Tzmz5h4d9vEfJRFX6r/jBCHpS7fTF6RVCubUbu4OQmDeFB5Du6WO0OzHUcy kmRnWLoonih9vCkRt5R56e2cvg3pcaediFNDKsquIRWaxlmB1dPjM0sNOKJzPuRILBYM KTJl7WePoBBZ96X67C0d61TJiRPxJ5zLrb8oT+SxXxme2tIP/b0gAXkj2oPRpdy24+wq BDk5YjPM4S/jd3gOm6jmllO5ggWJYLc+Ed9o0ZoDwoypF2QgJKLgbMgPFNI1Xzxp4jcO QVHa85eCZsJ19vrW4JJZ5WKn9rTiYUDyRNnzLhdTtK5OXGpZOm9IezRzT6Q9N7TEBHQ2 6c9w== X-Gm-Message-State: AOAM530eByb+yvAuhQew/rzBpp5i3NGIYnrFxZt1bu3dEuYdB7vrCFlN p+qj/+tABlEA9YIgndhj9XM= X-Google-Smtp-Source: ABdhPJy3f01MKam21I/98mQDJb1njf1uZPZZ4J8u9p2CtqcrkPWbpxVMfyHf3UdGV9+F7n5Pkd7jww== X-Received: by 2002:a1c:e484:: with SMTP id b126mr2097270wmh.35.1621487749623; Wed, 19 May 2021 22:15:49 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 1/3] hw/arm/boot: Abort if set_kernel_args() fails Date: Thu, 20 May 2021 07:15:40 +0200 Message-Id: <20210520051542.2378774-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210520051542.2378774-1-f4bug@amsat.org> References: <20210520051542.2378774-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) If a address_space_write() call fails while calling set_kernel_args(), the guest kernel will boot using crap data. Avoid that by aborting if this ever occurs. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell --- hw/arm/boot.c | 53 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index d7b059225e6..0c1346d5842 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -291,15 +291,20 @@ static inline bool have_dtb(const struct arm_boot_inf= o *info) =20 #define WRITE_WORD(p, value) do { \ address_space_stl_notdirty(as, p, value, \ - MEMTXATTRS_UNSPECIFIED, NULL); \ + MEMTXATTRS_UNSPECIFIED, &result); \ + if (result !=3D MEMTX_OK) { \ + goto fail; \ + } \ p +=3D 4; \ } while (0) =20 -static void set_kernel_args(const struct arm_boot_info *info, AddressSpace= *as) +/* Returns: 0 on success, -1 on error */ +static int set_kernel_args(const struct arm_boot_info *info, AddressSpace = *as) { int initrd_size =3D info->initrd_size; hwaddr base =3D info->loader_start; hwaddr p; + MemTxResult result; =20 p =3D base + KERNEL_ARGS_ADDR; /* ATAG_CORE */ @@ -326,8 +331,11 @@ static void set_kernel_args(const struct arm_boot_info= *info, AddressSpace *as) int cmdline_size; =20 cmdline_size =3D strlen(info->kernel_cmdline); - address_space_write(as, p + 8, MEMTXATTRS_UNSPECIFIED, - info->kernel_cmdline, cmdline_size + 1); + result =3D address_space_write(as, p + 8, MEMTXATTRS_UNSPECIFIED, + info->kernel_cmdline, cmdline_size + = 1); + if (result !=3D MEMTX_OK) { + goto fail; + } cmdline_size =3D (cmdline_size >> 2) + 1; WRITE_WORD(p, cmdline_size + 2); WRITE_WORD(p, 0x54410009); @@ -341,22 +349,31 @@ static void set_kernel_args(const struct arm_boot_inf= o *info, AddressSpace *as) atag_board_len =3D (info->atag_board(info, atag_board_buf) + 3) & = ~3; WRITE_WORD(p, (atag_board_len + 8) >> 2); WRITE_WORD(p, 0x414f4d50); - address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, - atag_board_buf, atag_board_len); + result =3D address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, + atag_board_buf, atag_board_len); + if (result !=3D MEMTX_OK) { + goto fail; + } p +=3D atag_board_len; } /* ATAG_END */ WRITE_WORD(p, 0); WRITE_WORD(p, 0); + + return 0; +fail: + return -1; } =20 -static void set_kernel_args_old(const struct arm_boot_info *info, - AddressSpace *as) +/* Returns: 0 on success, -1 on error */ +static int set_kernel_args_old(const struct arm_boot_info *info, + AddressSpace *as) { hwaddr p; const char *s; int initrd_size =3D info->initrd_size; hwaddr base =3D info->loader_start; + MemTxResult result; =20 /* see linux/include/asm-arm/setup.h */ p =3D base + KERNEL_ARGS_ADDR; @@ -419,10 +436,18 @@ static void set_kernel_args_old(const struct arm_boot= _info *info, } s =3D info->kernel_cmdline; if (s) { - address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, s, strlen(s) + = 1); + result =3D address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, + s, strlen(s) + 1); + if (result !=3D MEMTX_OK) { + goto fail; + } } else { WRITE_WORD(p, 0); } + + return 0; +fail: + return -1; } =20 static int fdt_add_memory_node(void *fdt, uint32_t acells, hwaddr mem_base, @@ -786,10 +811,16 @@ static void do_cpu_reset(void *opaque) cpu_set_pc(cs, info->loader_start); =20 if (!have_dtb(info)) { + int err; + if (old_param) { - set_kernel_args_old(info, as); + err =3D set_kernel_args_old(info, as); } else { - set_kernel_args(info, as); + err =3D set_kernel_args(info, as); + } + if (err) { + error_report("could not set kernel arguments"); + exit(1); } } } else { --=20 2.26.3 From nobody Wed May 15 10:36:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.50 as permitted sender) client-ip=209.85.221.50; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f50.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621487757; cv=none; d=zohomail.com; s=zohoarc; b=dRmyJjXefDhwChKOkH8123fLpZblnrmwEBXckXGkXy80eOVCEag1Zzv0K8/w5J65jporNSB++Bb/aHcadc1mqqH5N3tu5jOD0xP/Ni4NGPf5QY2aRtARULiRjXdXu2fjJ2hH1PnRfgcvLBVrEPunpZ/zjz9yCTUK0ji+0qjrUCI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621487757; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=trGsGaryNWUPxAJDqUIpevE5ZbWH+x1Qd17FpqljBXA=; b=DzkY2tZt7A6LjQB8WxM4bf3AQKzfIpo2nov0b1jHlLqrU3x66UDLKveSPV8gjC6kT9HfLn/Ag42gqKUAfgUu9hXvLg1lkw71+POk4gBXoyFLUeQW1WlxGwZDU6SAOWwhF6DA/NFm61hBQoaj2XtjkgnyH5VPG0cw3Fc2hgoi07E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by mx.zohomail.com with SMTPS id 1621487757254489.5647856574192; Wed, 19 May 2021 22:15:57 -0700 (PDT) Received: by mail-wr1-f50.google.com with SMTP id j14so14446055wrq.5 for ; Wed, 19 May 2021 22:15:55 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (31.red-83-51-215.dynamicip.rima-tde.net. [83.51.215.31]) by smtp.gmail.com with ESMTPSA id p5sm1730612wrd.25.2021.05.19.22.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 May 2021 22:15:54 -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 :mime-version:content-transfer-encoding; bh=trGsGaryNWUPxAJDqUIpevE5ZbWH+x1Qd17FpqljBXA=; b=AHnpVKmwyHn+wNukIPjogA6Hkn8d1dioPdVLsZvuaYcQaSfNG+Ku+jDM1G9nm+r6RV RmGLf6+rYeeG1E2lQw3ShzO80YPxyiadK8BAJ/BsrKxlfDr7IwLoH+HpqyzZn+/zEl98 c8RxHV0XbuHY27dFqq1XD5F1FM1u7wke3vHz1mCApubSh3skua3LVaZ+DJ4C4mzgTWPz r0RymMS5AEuZ262UNDF3TinQ/1URa929gtMyfinmI4U10gSS1PCzIkGx8YxY5RZSzkHK b0wZxH9kOmhHmqqYQ/zVeC2x+108z6eTj6PTVwSPaIfY8F6iA/mPYO7QIrjKvkNXKvZr QjaQ== 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:mime-version:content-transfer-encoding; bh=trGsGaryNWUPxAJDqUIpevE5ZbWH+x1Qd17FpqljBXA=; b=nKlZjz+++ziZv1VBALyB4V4swY30FssvwEK2AVFoc0cMw4+rjedIW0TcAKoGLB1yUC rGfeJOA/1trCSSrOocR1vlW2iU0bS1eVeJJkovvl+/YX4zi+SUlruOcSxmvp5vSV/jkR xi2wN+NuntvbsARMYbC94CFOhRpG5+bsIax+xunIMrtcNK/t2L+OCDZtkoywuO48RxBR 8kpnhp1qZ9RmhcRa9lN9qlfLYcfsxrrbVOYvJ0OBKCsXqxUMsHNljROynhsDZypDCPjx qpxW6A8uhn8UzMxWNaPbNI28RKtxHUhmCv9f/60pR3kH6+hozzX/9R1QKhCnAPcfYbU9 2svA== X-Gm-Message-State: AOAM532EUJNDMwTrd1FhhRCdgNwG1tHFHeSY8m1ptWq0PA76Bi1N+YPb vpg0AcCkoUAyyzhIzYuCHeE= X-Google-Smtp-Source: ABdhPJwAs938B/qTch6yIjZy5/2PxuGX5dTuRq0Q/X5uFzXlk2G8Of//2cBPIk6n4YRgU9kjr5W1GQ== X-Received: by 2002:a5d:6ac2:: with SMTP id u2mr2155073wrw.272.1621487754552; Wed, 19 May 2021 22:15:54 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 2/3] hw/core/loader: Move 'write_rom' trace event earlier Date: Thu, 20 May 2021 07:15:41 +0200 Message-Id: <20210520051542.2378774-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210520051542.2378774-1-f4bug@amsat.org> References: <20210520051542.2378774-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) It is more useful to trace the event which will happen, rather than missing an event that failed. So move the 'write_rom' trace event earlier. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/loader.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 5b34869a541..b3c4a654b45 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1142,6 +1142,7 @@ static void rom_reset(void *unused) if (rom->data =3D=3D NULL) { continue; } + trace_loader_write_rom(rom->name, rom->addr, rom->datasize, rom->i= srom); if (rom->mr) { void *host =3D memory_region_get_ram_ptr(rom->mr); memcpy(host, rom->data, rom->datasize); @@ -1160,8 +1161,6 @@ static void rom_reset(void *unused) * CPU definitely fetches its instructions from the just written d= ata. */ cpu_flush_icache_range(rom->addr, rom->datasize); - - trace_loader_write_rom(rom->name, rom->addr, rom->datasize, rom->i= srom); } } =20 --=20 2.26.3 From nobody Wed May 15 10:36:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) client-ip=209.85.221.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1621487761; cv=none; d=zohomail.com; s=zohoarc; b=V+K7h+2jNwMHS5+vnm39oIr/F7ZT/FYmYgk6ubMPBOynkfEQwpKqIogArxNQrS64ZNVYqzVtp4NHfI9njTSwjVFxjp4pU1xSovgD6bm84OmT4xmT9iROl4jikZHMaKH+/KP5jRK8J1JKruRf/izxyvgLUEogB3iRr2FKZzfDamI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621487761; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mcAunA11//sOCKzq7CO3/y2yGuInMfq776cnfd5eSQU=; b=Z54QvgePuCZbHEcMlbHnfsqFDx1TlQyOmZ1/ya6whCNr0l3TR0MN4fWKU8lp5rcFs9tBfnoVEXcq7veR/fNTGzcWM/Nau17iiJvpzFmqYbmhPL/O7E7Rvplo6FWvMPgqJQa0KALttlzrqWGJPAAdiCfkccKqBlGON0uDcxv2i34= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mx.zohomail.com with SMTPS id 1621487761373212.87916897965079; Wed, 19 May 2021 22:16:01 -0700 (PDT) Received: by mail-wr1-f42.google.com with SMTP id p7so12450048wru.10 for ; Wed, 19 May 2021 22:16:00 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (31.red-83-51-215.dynamicip.rima-tde.net. [83.51.215.31]) by smtp.gmail.com with ESMTPSA id p10sm1567272wrr.58.2021.05.19.22.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 May 2021 22:15:59 -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 :mime-version:content-transfer-encoding; bh=mcAunA11//sOCKzq7CO3/y2yGuInMfq776cnfd5eSQU=; b=TsDEf1u9CG1+cYkqPoVDdeXsrLXMbD9IG6YmCWu+UKOxBalK1Oc9XSLCW1xJ0cUldK NVhhMFLKCknoh+ih01EDDv6pkDxpw3F6b6Hj88q9M6UlowuyfaM4uakFnqFIfrUoqbhR WKZn1h1M4hmGOHDhbcf2Mg3ufiTe4NWjJ3Z1XWo/J8/OPct4v382tcfTWR6jUt+JvyIO XK2mySBf3vuMAjpMIgIPShPhoeMDOzb/tS+F3yadDH7PaaSJsT4ZqLYyEFeg082KoCPP gpgMN06BYOm9+OWaQodVROSG+zhvw9eXFjMMqu5UI+W5IYCh1Lprt9oSkd09zh2aMoPS FFoA== 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:mime-version:content-transfer-encoding; bh=mcAunA11//sOCKzq7CO3/y2yGuInMfq776cnfd5eSQU=; b=V/vvZ3Pj/AvlnJZdxqMLo3eqRY6AFrldQIgIBGLXxBWXjpIVCDrZDNEb0cB3ttFO3S z8ycFSc4gd1VZFKUBQsy32EzYz1PFHYVrDsGVQTqLYTPb+0Jkx+AUGxxfV05PpdqyUGG WoFZCZ+ly/CnO/uFs67C9+waRQL7t+J+VO0Myc14YTts+clrvnI2doc6Q3vVsw+vvgSL opqphk8SmxQnpPGB6VZFmekKway9iif1OJz090Ol5CBGwELshg1Ta4+6sLKw6imwpkM5 bBvNBDLI3/nmvWOd1ovw0dOiWEp9E7uVTmAHcwovyROMI9l+yMq2dEmoKZZBx/JOYCY2 tPXQ== X-Gm-Message-State: AOAM533YUCi9OrOsZDKv1/uXP55B2eFloiS7duoXhI8sl/kJ5xsnOFiD te46Lcok15evqkRVg4RgKBR5HNYHRLIYxQ== X-Google-Smtp-Source: ABdhPJwfLv98WFvrQLDPk3/XAbIEiMwoocDNyG+9ri0d2AiuYPhT7Pp/yIC5QRyDV0vFBaRorVMvTw== X-Received: by 2002:adf:f80f:: with SMTP id s15mr2148251wrp.341.1621487759624; Wed, 19 May 2021 22:15:59 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 3/3] hw/core/loader: Warn if we fail to load ROM regions at reset Date: Thu, 20 May 2021 07:15:42 +0200 Message-Id: <20210520051542.2378774-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210520051542.2378774-1-f4bug@amsat.org> References: <20210520051542.2378774-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) If the user provides an ELF file that's been linked to a wrong address, we try to load it, fails, and keep going silently. Instead, Display a warning instead, but keep going to not disrupt users accidentally relying on this 'continues-anyway' behaviour. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/core/loader.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index b3c4a654b45..37a2f2c4959 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1147,8 +1147,16 @@ static void rom_reset(void *unused) void *host =3D memory_region_get_ram_ptr(rom->mr); memcpy(host, rom->data, rom->datasize); } else { - address_space_write_rom(rom->as, rom->addr, MEMTXATTRS_UNSPECI= FIED, - rom->data, rom->datasize); + MemTxResult res; + + res =3D address_space_write_rom(rom->as, rom->addr, + MEMTXATTRS_UNSPECIFIED, + rom->data, rom->datasize); + if (res !=3D MEMTX_OK) { + warn_report("rom: unable to write data (file '%s', " + "addr=3D0x" TARGET_FMT_plx ", size=3D0x%zu)", + rom->name, rom->addr, rom->datasize); + } } if (rom->isrom) { /* rom needs to be written only once */ --=20 2.26.3