aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2024-09-03 16:41:54 +0200
committerPeter Maydell <peter.maydell@linaro.org>2024-09-05 13:12:37 +0100
commit17e93dd5faaf3ba8a1df099cc9396e4943baa892 (patch)
tree79caedd7fc8c9bbc5ecbf55f15fdc437c0cb14fc
parent2b490f150af4beee10250c8cb0da8a5b66b308e7 (diff)
downloadqemu-17e93dd5faaf3ba8a1df099cc9396e4943baa892.zip
qemu-17e93dd5faaf3ba8a1df099cc9396e4943baa892.tar.gz
qemu-17e93dd5faaf3ba8a1df099cc9396e4943baa892.tar.bz2
hw/arm/boot: Explain why load_elf_hdr() error is ignored
If the file is not an ELF file, arm_setup_direct_kernel_boot() falls back to try it as a uimage or an AArch64 Image file or as last resort a bare raw binary. We can discard load_elf_hdr() error and silently return. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20240903144154.17135-1-philmd@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--hw/arm/boot.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index 6c895e0..5301d8d 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -799,14 +799,18 @@ static ssize_t arm_load_elf(struct arm_boot_info *info, uint64_t *pentry,
} elf_header;
int data_swab = 0;
bool big_endian;
- ssize_t ret = -1;
+ ssize_t ret;
Error *err = NULL;
load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, &err);
if (err) {
+ /*
+ * If the file is not an ELF file we silently return.
+ * The caller will fall back to try other formats.
+ */
error_free(err);
- return ret;
+ return -1;
}
if (elf_is64) {