This makes use of new error codes which load_elf() can return. Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> --- hw/ppc/spapr.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 851ce4b..18a4872 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1306,15 +1306,26 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args) kernel_size = load_elf(kernel_filename, translate_kernel_address, NULL, NULL, &lowaddr, NULL, 1, ELF_MACHINE, 0); - if (kernel_size < 0) { + if (kernel_size == ELF_LOAD_WRONG_ENDIAN) { kernel_size = load_elf(kernel_filename, translate_kernel_address, NULL, NULL, &lowaddr, NULL, 0, ELF_MACHINE, 0); kernel_le = kernel_size > 0; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - kernel_filename); + switch (kernel_size) { + case ELF_LOAD_WRONG_ARCH: + fprintf(stderr, "qemu: could not load kernel '%s' from incompatible arhitecture\n", + kernel_filename); + break; + case ELF_LOAD_NOT_ELF: + fprintf(stderr, "qemu: '%s' is not ELF\n", kernel_filename); + break; + default: + fprintf(stderr, "qemu: could not load kernel '%s'\n", + kernel_filename); + break; + } exit(1); } -- 1.8.4.rc4