From nobody Fri May 3 12:04:11 2024 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1501247533155343.8052053793989; Fri, 28 Jul 2017 06:12:13 -0700 (PDT) Received: from localhost ([::1]:48339 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db53q-0007al-GH for importer@patchew.org; Fri, 28 Jul 2017 09:12:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41619) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db4zk-000466-JE for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1db4zg-0008RU-Np for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:56 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:58476) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db4zg-0008Qy-FV for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:52 -0400 Received: from HHMAIL01.hh.imgtec.org (unknown [10.100.10.19]) by Forcepoint Email with ESMTPS id 40AC1711E54E2; Fri, 28 Jul 2017 14:07:47 +0100 (IST) Received: from hhmipssw204.hh.imgtec.org (10.100.21.121) by HHMAIL01.hh.imgtec.org (10.100.10.21) with Microsoft SMTP Server (TLS) id 14.3.294.0; Fri, 28 Jul 2017 14:07:50 +0100 From: Yongbok Kim To: Date: Fri, 28 Jul 2017 14:07:44 +0100 Message-ID: <1501247265-22367-2-git-send-email-yongbok.kim@imgtec.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1501247265-22367-1-git-send-email-yongbok.kim@imgtec.com> References: <1501247265-22367-1-git-send-email-yongbok.kim@imgtec.com> MIME-Version: 1.0 X-Originating-IP: [10.100.21.121] Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 195.59.15.196 Subject: [Qemu-devel] [PULL 1/2] hw/mips: load_elf_strerror to report kernel loading failure 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: Peter Maydell , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Aurelien Jarno Emulated MIPS boards bail out with a simple "could not load kernel" when a kernel could not be load, without specifying the underlying reason. Fix that by calling load_elf_strerror. At the same time use error_report to report the error instead of fprintf. Signed-off-by: Aurelien Jarno Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Yongbok Kim --- hw/mips/mips_fulong2e.c | 15 +++++++++------ hw/mips/mips_malta.c | 14 ++++++++------ hw/mips/mips_mipssim.c | 5 +++-- hw/mips/mips_r4k.c | 6 ++++-- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index 3f3cb32..3532399 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -110,16 +110,19 @@ static int64_t load_kernel (CPUMIPSState *env) { int64_t kernel_entry, kernel_low, kernel_high; int index =3D 0; - long initrd_size; + long kernel_size, initrd_size; ram_addr_t initrd_offset; uint32_t *prom_buf; long prom_size; =20 - if (load_elf(loaderparams.kernel_filename, cpu_mips_kseg0_to_phys, NUL= L, - (uint64_t *)&kernel_entry, (uint64_t *)&kernel_low, - (uint64_t *)&kernel_high, 0, EM_MIPS, 1, 0) < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - loaderparams.kernel_filename); + kernel_size =3D load_elf(loaderparams.kernel_filename, cpu_mips_kseg0_= to_phys, + NULL, (uint64_t *)&kernel_entry, + (uint64_t *)&kernel_low, (uint64_t *)&kernel_hi= gh, + 0, EM_MIPS, 1, 0); + if (kernel_size < 0) { + error_report("qemu: could not load kernel '%s': %s", + loaderparams.kernel_filename, + load_elf_strerror(kernel_size)); exit(1); } =20 diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 3487d16..8ecd544 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -794,7 +794,7 @@ static void GCC_FMT_ATTR(3, 4) prom_set(uint32_t* prom_= buf, int index, static int64_t load_kernel (void) { int64_t kernel_entry, kernel_high; - long initrd_size; + long kernel_size, initrd_size; ram_addr_t initrd_offset; int big_endian; uint32_t *prom_buf; @@ -808,11 +808,13 @@ static int64_t load_kernel (void) big_endian =3D 0; #endif =20 - if (load_elf(loaderparams.kernel_filename, cpu_mips_kseg0_to_phys, NUL= L, - (uint64_t *)&kernel_entry, NULL, (uint64_t *)&kernel_high, - big_endian, EM_MIPS, 1, 0) < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - loaderparams.kernel_filename); + kernel_size =3D load_elf(loaderparams.kernel_filename, cpu_mips_kseg0_= to_phys, + NULL, (uint64_t *)&kernel_entry, NULL, + (uint64_t *)&kernel_high, big_endian, EM_MIPS, = 1, 0); + if (kernel_size < 0) { + error_report("qemu: could not load kernel '%s': %s", + loaderparams.kernel_filename, + load_elf_strerror(kernel_size)); exit(1); } =20 diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c index 6990b1b..07fc4c2 100644 --- a/hw/mips/mips_mipssim.c +++ b/hw/mips/mips_mipssim.c @@ -78,8 +78,9 @@ static int64_t load_kernel(void) if ((entry & ~0x7fffffffULL) =3D=3D 0x80000000) entry =3D (int32_t)entry; } else { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - loaderparams.kernel_filename); + error_report("qemu: could not load kernel '%s': %s", + loaderparams.kernel_filename, + load_elf_strerror(kernel_size)); exit(1); } =20 diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index 690874b..2f5ced7 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -31,6 +31,7 @@ #include "sysemu/block-backend.h" #include "exec/address-spaces.h" #include "sysemu/qtest.h" +#include "qemu/error-report.h" =20 #define MAX_IDE_BUS 2 =20 @@ -96,8 +97,9 @@ static int64_t load_kernel(void) if ((entry & ~0x7fffffffULL) =3D=3D 0x80000000) entry =3D (int32_t)entry; } else { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - loaderparams.kernel_filename); + error_report("qemu: could not load kernel '%s': %s", + loaderparams.kernel_filename, + load_elf_strerror(kernel_size)); exit(1); } =20 --=20 2.7.4 From nobody Fri May 3 12:04:11 2024 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1501247392068521.3225446078519; Fri, 28 Jul 2017 06:09:52 -0700 (PDT) Received: from localhost ([::1]:48329 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db51Z-0006Lk-NX for importer@patchew.org; Fri, 28 Jul 2017 09:09:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db4zk-00045o-56 for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1db4zg-0008RA-E3 for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:56 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:13828) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1db4zg-0008Qk-7b for qemu-devel@nongnu.org; Fri, 28 Jul 2017 09:07:52 -0400 Received: from HHMAIL01.hh.imgtec.org (unknown [10.100.10.19]) by Forcepoint Email with ESMTPS id B2850364DB669; Fri, 28 Jul 2017 14:07:47 +0100 (IST) Received: from hhmipssw204.hh.imgtec.org (10.100.21.121) by HHMAIL01.hh.imgtec.org (10.100.10.21) with Microsoft SMTP Server (TLS) id 14.3.294.0; Fri, 28 Jul 2017 14:07:51 +0100 From: Yongbok Kim To: Date: Fri, 28 Jul 2017 14:07:45 +0100 Message-ID: <1501247265-22367-3-git-send-email-yongbok.kim@imgtec.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1501247265-22367-1-git-send-email-yongbok.kim@imgtec.com> References: <1501247265-22367-1-git-send-email-yongbok.kim@imgtec.com> MIME-Version: 1.0 X-Originating-IP: [10.100.21.121] Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 195.59.15.196 Subject: [Qemu-devel] [PULL 2/2] Revert "elf-loader: warn about invalid endianness" 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: Alexey Kardashevskiy , Peter Maydell , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Alexey Kardashevskiy This reverts c8e1158cf611 "elf-loader: warn about invalid endianness" as it produces a useless message every time an LE kernel image is passed via -kernel on a ppc64-pseries machine. The pseries machine already checks for ELF_LOAD_WRONG_ENDIAN and tries with big_endian=3D0. Signed-off-by: Alexey Kardashevskiy Signed-off-by: Aurelien Jarno Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Yongbok Kim --- hw/core/loader.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index c17ace0..e5e8cbb 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -480,7 +480,6 @@ int load_elf_ram(const char *filename, } =20 if (target_data_order !=3D e_ident[EI_DATA]) { - fprintf(stderr, "%s: wrong endianness\n", filename); ret =3D ELF_LOAD_WRONG_ENDIAN; goto fail; } --=20 2.7.4