From nobody Sat May 18 06:31:27 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1619705810; cv=none; d=zohomail.com; s=zohoarc; b=DI3ztFg5s1FPQg5QezvpQbXBnxz2LKaLZ4LHTzfLbLyy7cu2+aFNaRtyWTkNDEZLxJ3GTOsjCObf8UynW1k5m1aAPdywPQ3JXwDYfYDevUjZhcMyuDwYgEE1My9wwVlZ07/4SrFvrqXSMnHdll6oe3tRBPFoA25p1cDjH7QSEjE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619705810; h=Content-Type: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=wMIEjBrBl1wLINgyALV6WM5fGNGigtjKlAWn6TTWLoY=; b=k+pDvyJfd+9Mh73iPdJtvPkAXblFjCAtZ11lewPUS3uIBrxyYN/kqFrX4E6k9IrkogJpeKKMzqOrKW68k5/Dx8yxwWr8KhpQ6NsxLM0t4t462ftTSIneu5y1t0maWN1eCinC4IR2mJTGXYejEEYOskJ/8n5gVsJER67/EqN76uQ= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161970581000113.29971490410776; Thu, 29 Apr 2021 07:16:50 -0700 (PDT) Received: from localhost ([::1]:59218 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lc7TE-0000fP-7R for importer@patchew.org; Thu, 29 Apr 2021 10:16:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43600) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7QH-0005Yw-3P for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:45 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:36527) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7QE-0004U7-Lr for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:44 -0400 Received: from quad ([82.142.25.254]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N9dbx-1lYy9V3f9x-015ZUS; Thu, 29 Apr 2021 16:13:29 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PATCH v3 1/3] exec/memory: Extract address_space_set() from dma_memory_set() Date: Thu, 29 Apr 2021 16:13:24 +0200 Message-Id: <20210429141326.69245-2-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210429141326.69245-1-laurent@vivier.eu> References: <20210429141326.69245-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:21ZHYbI2/DrpcalKCabwqS6hSp2aXCTwYVhUc+Kru3WSAZqfFoW XlElmR7a2s1FtrsZDyCt9wmK675KspaYZ7ZOoM5v4448L+6TVi3nNtYaDPKg6YpXkmy0c+G PTQYpr7SvogP+vhs3/jdE1WSxIjsenStzZPjD0myE9utZU5BZC/4ZtXsiV1khmUHwl3JuOz fLcCl9pwdRwnK9T/CCqew== X-UI-Out-Filterresults: notjunk:1;V03:K0:yaN70zbQI/8=:emvGAiDa+XwpO5ExOpDbYv gcRA8pa9rjOTuymKWUYEix6zdDdC5WxG+bxAM8Ureakb61J7nIWxwmU0ak8s5eaY8wrye0Xm7 vr0PAZmS6GWDxIA3awPOSBbPbalWIgMHiBvvnXk6rAljsJd83Y8Wb8kpYjFy/yM8mZWKreqiu TeGFR/H9Lw5206NQ4pf1UgsTkqDmRB8c8ocfayHlaambNmx1i67uhvJ4Ms9wXR9Q/Cs9BuKAE AkHKsQrxr+R+oq5J25YeHsdj7kxQJHkQ1W27Rcl3B2SD47a7lsTZpvmDwyCeFz6url6echR6J ZLrOkLW5Zv9F82NEViyuL9m+daKdOR4Lk3QcEiaoaViBYfi/Tg/Qj38inQOAd0Y42UaKp/JKL 33rof0KZAqOsoN46O4AQ4J+JH55tSDc28lTHkR9KJ98zG+OkNoZfph3OGkU6/3K0dUi+8qh6J Hi6hg/GZ3zkXudLz05VAPDyes6z2IC2sKmSeXjikASXXBps3i+AlrX4bHBN4w4F8sr+5klWFH 4b19KZF0TVDRQk+JNGlOrk= 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: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham 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: Peter Maydell , Richard Henderson , Laurent Vivier , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Stefano Garzarella Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daud=C3=A9 dma_memory_set() does a DMA barrier, set the address space with a constant value. The constant value filling code is not specific to DMA and can be used for AddressSpace. Extract it as a new helper: address_space_set(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier Reviewed-by: Stefano Garzarella Reviewed-by: Richard Henderson Signed-off-by: Laurent Vivier --- include/exec/memory.h | 16 ++++++++++++++++ softmmu/dma-helpers.c | 16 +--------------- softmmu/physmem.c | 19 +++++++++++++++++++ 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 5728a681b27d..192139af58e9 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2568,6 +2568,22 @@ address_space_write_cached(MemoryRegionCache *cache,= hwaddr addr, } } =20 +/** + * address_space_set: Fill address space with a constant byte. + * + * Return a MemTxResult indicating whether the operation succeeded + * or failed (eg unassigned memory, device rejected the transaction, + * IOMMU fault). + * + * @as: #AddressSpace to be accessed + * @addr: address within that address space + * @c: constant byte to fill the memory + * @len: the number of bytes to fill with the constant byte + * @attrs: memory transaction attributes + */ +MemTxResult address_space_set(AddressSpace *as, hwaddr addr, + uint8_t c, hwaddr len, MemTxAttrs attrs); + #ifdef NEED_CPU_H /* enum device_endian to MemOp. */ static inline MemOp devend_memop(enum device_endian end) diff --git a/softmmu/dma-helpers.c b/softmmu/dma-helpers.c index 7d766a5e89a3..8e1e7ad53206 100644 --- a/softmmu/dma-helpers.c +++ b/softmmu/dma-helpers.c @@ -23,21 +23,7 @@ MemTxResult dma_memory_set(AddressSpace *as, dma_addr_t = addr, { dma_barrier(as, DMA_DIRECTION_FROM_DEVICE); =20 -#define FILLBUF_SIZE 512 - uint8_t fillbuf[FILLBUF_SIZE]; - int l; - MemTxResult error =3D MEMTX_OK; - - memset(fillbuf, c, FILLBUF_SIZE); - while (len > 0) { - l =3D len < FILLBUF_SIZE ? len : FILLBUF_SIZE; - error |=3D address_space_write(as, addr, MEMTXATTRS_UNSPECIFIED, - fillbuf, l); - len -=3D l; - addr +=3D l; - } - - return error; + return address_space_set(as, addr, c, len, MEMTXATTRS_UNSPECIFIED); } =20 void qemu_sglist_init(QEMUSGList *qsg, DeviceState *dev, int alloc_hint, diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 85034d9c11e3..c9117527ae71 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -2891,6 +2891,25 @@ MemTxResult address_space_rw(AddressSpace *as, hwadd= r addr, MemTxAttrs attrs, } } =20 +MemTxResult address_space_set(AddressSpace *as, hwaddr addr, + uint8_t c, hwaddr len, MemTxAttrs attrs) +{ +#define FILLBUF_SIZE 512 + uint8_t fillbuf[FILLBUF_SIZE]; + int l; + MemTxResult error =3D MEMTX_OK; + + memset(fillbuf, c, FILLBUF_SIZE); + while (len > 0) { + l =3D len < FILLBUF_SIZE ? len : FILLBUF_SIZE; + error |=3D address_space_write(as, addr, attrs, fillbuf, l); + len -=3D l; + addr +=3D l; + } + + return error; +} + void cpu_physical_memory_rw(hwaddr addr, void *buf, hwaddr len, bool is_write) { --=20 2.31.1 From nobody Sat May 18 06:31:27 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1619705729; cv=none; d=zohomail.com; s=zohoarc; b=RQpDqCwekqZEnJAnydOrC70cwyQXvV3yWaPjWMv45XBfIVl6MoeT2pSO1uSY86MgXHV9/6ihRdGnW6+wiNxedxx478cEwiOzZv+ghue5/gDyGNig0dgifnjJ2N+fvJr43B1YZ/hhiImZi8BDjWivfgDkeI1J28CijFn3dUGCt2Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619705729; h=Content-Type: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=s/bnQBMcFiFyBxb+0CcZqiB41/RK4q5lDBB1B1u0SxU=; b=QE//st7GThAAY55Fl+f2M4yk9NIGYvk/wEsrl2Vdnkz7Iyo/FM5eNOSk4FFHVa+3y/5bz+oc+uMsMA0zN1bwKa1ro/p2+zFSNMea+f5bSd0B33ekgmOhMJxXnGzc2Wr+T10V3s027UFTZ35ZEkLKa5+fS3lMFwX9rAFNRUHzYYc= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1619705729716763.4933569352456; Thu, 29 Apr 2021 07:15:29 -0700 (PDT) Received: from localhost ([::1]:54390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lc7Rt-000743-I1 for importer@patchew.org; Thu, 29 Apr 2021 10:15:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43552) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7QC-0005PC-Oa for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:40 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:38029) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7Q8-0004PU-K7 for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:40 -0400 Received: from quad ([82.142.25.254]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M4rkF-1lcw6I29f5-0020DG; Thu, 29 Apr 2021 16:13:29 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PATCH v3 2/3] hw/elf_ops: clear uninitialized segment space Date: Thu, 29 Apr 2021 16:13:25 +0200 Message-Id: <20210429141326.69245-3-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210429141326.69245-1-laurent@vivier.eu> References: <20210429141326.69245-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:viLJk4n520eg09CF1TiSSwulH4BUJ85htBBKNhaLy05Ks3p/rO6 MNJ69xdBtzW0niT7bd7t6eRffj0O0/+bMdcL7upBDU1fdhT9taWePuSkWoFLqUmZHeNXANy SSFr8XbvWReMQeQYHR/c63Jmau6+C2uOiH5hhEPZL9XHQBR1afwdvnTO9tO8wkIxeWxG/bg iPmcEVvC6YXIfkxkRaoDA== X-UI-Out-Filterresults: notjunk:1;V03:K0:MNNvyC8tVd4=:j875aqkGwTHEFF0wTPS6hE M8uxw893HKW08ulezI0o6XceaaQ4z53J1wx1xVOZG1CHM+IqFxRtaa4VHvzhLArsnRPqiqua1 i4pPRWDWjhT6IGBVlDNw4d8ip8j/V5c5I49nvwgEJVfjcJ60zNn3KTckkOxjDb5bY7OMxbHVs m72ufIsYl5dqaBVjyysBfD488lILHspvlm0wq6mbCer7CWqy122SQEJ66g3bFDYnDmNzR6C+A 8r0ivJ5C6L4I+T1MYJ7+mO/hIbliBYINnI4erDhVd1hKx0n80pqjYU0sZRKJLeMMtDEbyaR5z iIOA1oeTbwUDUV+M2CE+FmxCFwsappcjwuN5qawro7hCmc2vBMLDdBj5pnz82tzNyz1fBY+vR YAoqeyHtsHBtCkP/vZiXHYmmOlIjmzvzp/oKmTZJ05qmNJ2uj+kEje4p6J+eo1Gjt8uAHgrZO V/lM7HBwzuOuFB2vT0zYO3XpgPBPuNjV1cgsRvfYMJF0VJy6hmW7BUHoFyMKVA+ZABGVNJzuF GnuOddFeAC1bXGGi1Ew7D8= 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: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham 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: Peter Maydell , Richard Henderson , Laurent Vivier , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Stefano Garzarella Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" When the mem_size of the segment is bigger than the file_size, and if this space doesn't overlap another segment, it needs to be cleared. This bug is very similar to the one we had for linux-user, 22d113b52f41 ("linux-user: Fix loading of BSS segments"), where .bss section is encoded as an extension of the the data one by setting the segment p_memsz > p_filesz. Signed-off-by: Laurent Vivier [PMD: Use recently added address_space_set()] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefano Garzarella Reviewed-by: Richard Henderson --- include/hw/elf_ops.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h index 6ee458e7bc3c..29f4c43e231d 100644 --- a/include/hw/elf_ops.h +++ b/include/hw/elf_ops.h @@ -562,6 +562,19 @@ static int glue(load_elf, SZ)(const char *name, int fd, if (res !=3D MEMTX_OK) { goto fail; } + /* + * We need to zero'ify the space that is not copied + * from file + */ + if (file_size < mem_size) { + res =3D address_space_set(as ? as : &address_space= _memory, + addr + file_size, 0, + mem_size - file_size, + MEMTXATTRS_UNSPECIFIED); + if (res !=3D MEMTX_OK) { + goto fail; + } + } } } =20 --=20 2.31.1 From nobody Sat May 18 06:31:27 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1619705727; cv=none; d=zohomail.com; s=zohoarc; b=OSmM3PWos9dz1POiQ3PQAGk6jvyLQuFJVhRIYHxVZwRLRiA1koZHPnrpBEF+nCVFUylKNl7ev+r8Lmi+ZUQqJmc5i/sa0T7CqpjOj3GmjkIH5AWfu4OLA/z2+87CtiK23k+QQHBRV+CUSVFCPpy1cxfyzhA3L9r92uE0D/W66ak= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619705727; 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=cxYsVt0X+p5ytcbGoi9aStYzs20bHkj0qFRx8r7j/i4=; b=WWfMk+wkf4tFRN/ZpPrV8ZrWqzQS2ImFCFdQdYAT3BMO3qKaJV610aZfu0slKn7BZaqRA75+EservCMeZY+9diR4SZVgcuOeJoXCYr9IsV+85Q1+10mbEYRSQ1N/5124jFPvRdTn1+h9hPl0Koyme/UZ1WYib2gyWb7/qXwDcG0= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1619705727428830.6697678657056; Thu, 29 Apr 2021 07:15:27 -0700 (PDT) Received: from localhost ([::1]:54324 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lc7Rr-00072F-Vr for importer@patchew.org; Thu, 29 Apr 2021 10:15:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43524) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7QB-0005O0-IQ for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:39 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:48465) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lc7Q8-0004PP-JA for qemu-devel@nongnu.org; Thu, 29 Apr 2021 10:13:39 -0400 Received: from quad ([82.142.25.254]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M277h-1laBTX0ccz-002YB6; Thu, 29 Apr 2021 16:13:30 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PATCH v3 3/3] hw/core/loader: clear uninitialized ROM space Date: Thu, 29 Apr 2021 16:13:26 +0200 Message-Id: <20210429141326.69245-4-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210429141326.69245-1-laurent@vivier.eu> References: <20210429141326.69245-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:E5vZqCFWX0qANu6Nt+14ZKXCz03mOvDw9vYTYcPcwLiaJKRWKPA sc+TcLimudzYyxC3Bw95jK3+rHgy3a8wx8EpQj0L7YXkXf01vxdkYV5LmteN6HiVKz3g93r JhxMvaq2yeTtHvxaJgLdzQvKyhA/tCsFOfTC87udLAHAurOtMmgpHx4P5SXuSXjzWTlTa/j kf+Oc5Vvt5X46s8pOMxug== X-UI-Out-Filterresults: notjunk:1;V03:K0:wB6gdQmjKjI=:UnhnodhE3PexAvw3WHWwEf 1knsWPo8UFRp9ifwDQ1GorDNde/MQTugN689nbOLje/huRqRaYc9HuV8W7R8Vc4p2cD5/f5vB sC7rlocolP/Ra+UqvxjU6NBVyLDPAQoauXxEFRe4CfCmTXeBLZrd6zIOqS2ZPJ+go3u4kcb47 q7i92cgat//stDAsE9JvqPKRVhpalKETRr2gw1L4XmySGa4UNdfH95NSav6lR7gxs0WPI5jhH sB4faPWH0UDGIeVpz7b4y00b5vSTFxOpHfJv1K1vHJyRzS7LEFG24qthTcEwh55/2RCNQRrlY h8ooV+GX4/NYlzEPG1XPGqdjHUy41jxHL70uGe4WUxlm98u7FNadrTELNtLIKpvnTLO7cG+MO fbQ+JKP/NE5kl4QV/XjPmkKSiiFEYGCJ5iT5+3BRTjc4E4yUGCbE+RknSroVt6NLIhoMLqL85 Sbq7YmJOkp/jseUHpleRAriYdK2ypklheb0HU/NLtAbypUgNvhMukNwVaooFCWKw2Q8C5JNBZ FQr4zzEzOiPm10NU+i97Ho= 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: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham 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: Peter Maydell , Richard Henderson , Laurent Vivier , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Stefano Garzarella Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" As for "hw/elf_ops: clear uninitialized segment space" we need to clear the uninitialized space when the ELF is set in ROM. Signed-off-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefano Garzarella --- hw/core/loader.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/core/loader.c b/hw/core/loader.c index d3e5f3b423f6..8146fdcbb7a0 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1146,9 +1146,13 @@ static void rom_reset(void *unused) if (rom->mr) { void *host =3D memory_region_get_ram_ptr(rom->mr); memcpy(host, rom->data, rom->datasize); + memset(host + rom->datasize, 0, rom->romsize - rom->datasize); } else { address_space_write_rom(rom->as, rom->addr, MEMTXATTRS_UNSPECI= FIED, rom->data, rom->datasize); + address_space_set(rom->as, rom->addr + rom->datasize, 0, + rom->romsize - rom->datasize, + MEMTXATTRS_UNSPECIFIED); } if (rom->isrom) { /* rom needs to be written only once */ --=20 2.31.1