diff mbox series

load_elf: Remove unused address variables from callers

Message ID 20200705174020.BDD0174633F@zero.eik.bme.hu
State New
Headers show
Series load_elf: Remove unused address variables from callers | expand

Commit Message

BALATON Zoltan July 5, 2020, 5:22 p.m. UTC
Several callers of load_elf() pass pointers for lowaddr and highaddr
parameters which are then not used for anything. This may stem from a
misunderstanding that load_elf need a value here but in fact it can
take NULL to ignore these values. Remove such unused variables and
pass NULL instead from callers that don't need these.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 hw/alpha/dp264.c       |  8 ++++----
 hw/arm/armv7m.c        |  4 +---
 hw/cris/boot.c         |  4 ++--
 hw/microblaze/boot.c   |  4 ++--
 hw/mips/fuloong2e.c    |  8 ++++----
 hw/moxie/moxiesim.c    |  4 ++--
 hw/nios2/boot.c        |  4 ++--
 hw/ppc/mac_newworld.c  |  6 ++----
 hw/ppc/mac_oldworld.c  |  6 ++----
 hw/ppc/ppc440_bamboo.c |  9 +++------
 hw/ppc/sam460ex.c      | 12 +++++-------
 hw/ppc/spapr.c         | 11 ++++-------
 hw/ppc/virtex_ml507.c  |  4 ++--
 hw/riscv/boot.c        |  8 ++++----
 hw/xtensa/sim.c        |  3 +--
 hw/xtensa/xtfpga.c     |  3 +--
 16 files changed, 41 insertions(+), 57 deletions(-)

Comments

David Gibson July 6, 2020, 3:54 a.m. UTC | #1
On Sun, Jul 05, 2020 at 07:22:11PM +0200, BALATON Zoltan wrote:
> Several callers of load_elf() pass pointers for lowaddr and highaddr
> parameters which are then not used for anything. This may stem from a
> misunderstanding that load_elf need a value here but in fact it can
> take NULL to ignore these values. Remove such unused variables and
> pass NULL instead from callers that don't need these.
> 
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

ppc parts
Acked-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  hw/alpha/dp264.c       |  8 ++++----
>  hw/arm/armv7m.c        |  4 +---
>  hw/cris/boot.c         |  4 ++--
>  hw/microblaze/boot.c   |  4 ++--
>  hw/mips/fuloong2e.c    |  8 ++++----
>  hw/moxie/moxiesim.c    |  4 ++--
>  hw/nios2/boot.c        |  4 ++--
>  hw/ppc/mac_newworld.c  |  6 ++----
>  hw/ppc/mac_oldworld.c  |  6 ++----
>  hw/ppc/ppc440_bamboo.c |  9 +++------
>  hw/ppc/sam460ex.c      | 12 +++++-------
>  hw/ppc/spapr.c         | 11 ++++-------
>  hw/ppc/virtex_ml507.c  |  4 ++--
>  hw/riscv/boot.c        |  8 ++++----
>  hw/xtensa/sim.c        |  3 +--
>  hw/xtensa/xtfpga.c     |  3 +--
>  16 files changed, 41 insertions(+), 57 deletions(-)
> 
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index f7751b18f6..4d24518d1d 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -62,8 +62,8 @@ static void clipper_init(MachineState *machine)
>      qemu_irq rtc_irq;
>      long size, i;
>      char *palcode_filename;
> -    uint64_t palcode_entry, palcode_low, palcode_high;
> -    uint64_t kernel_entry, kernel_low, kernel_high;
> +    uint64_t palcode_entry;
> +    uint64_t kernel_entry, kernel_low;
>      unsigned int smp_cpus = machine->smp.cpus;
>  
>      /* Create up to 4 cpus.  */
> @@ -113,7 +113,7 @@ static void clipper_init(MachineState *machine)
>          exit(1);
>      }
>      size = load_elf(palcode_filename, NULL, cpu_alpha_superpage_to_phys,
> -                    NULL, &palcode_entry, &palcode_low, &palcode_high, NULL,
> +                    NULL, &palcode_entry, NULL, NULL, NULL,
>                      0, EM_ALPHA, 0, 0);
>      if (size < 0) {
>          error_report("could not load palcode '%s'", palcode_filename);
> @@ -132,7 +132,7 @@ static void clipper_init(MachineState *machine)
>          uint64_t param_offset;
>  
>          size = load_elf(kernel_filename, NULL, cpu_alpha_superpage_to_phys,
> -                        NULL, &kernel_entry, &kernel_low, &kernel_high, NULL,
> +                        NULL, &kernel_entry, &kernel_low, NULL, NULL,
>                          0, EM_ALPHA, 0, 0);
>          if (size < 0) {
>              error_report("could not load kernel '%s'", kernel_filename);
> diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
> index 3308211e9c..92f859d760 100644
> --- a/hw/arm/armv7m.c
> +++ b/hw/arm/armv7m.c
> @@ -309,7 +309,6 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>  {
>      int image_size;
>      uint64_t entry;
> -    uint64_t lowaddr;
>      int big_endian;
>      AddressSpace *as;
>      int asidx;
> @@ -330,12 +329,11 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>  
>      if (kernel_filename) {
>          image_size = load_elf_as(kernel_filename, NULL, NULL, NULL,
> -                                 &entry, &lowaddr, NULL,
> +                                 &entry, NULL, NULL,
>                                   NULL, big_endian, EM_ARM, 1, 0, as);
>          if (image_size < 0) {
>              image_size = load_image_targphys_as(kernel_filename, 0,
>                                                  mem_size, as);
> -            lowaddr = 0;
>          }
>          if (image_size < 0) {
>              error_report("Could not load kernel '%s'", kernel_filename);
> diff --git a/hw/cris/boot.c b/hw/cris/boot.c
> index b8947bc660..aa8d2756d6 100644
> --- a/hw/cris/boot.c
> +++ b/hw/cris/boot.c
> @@ -67,7 +67,7 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
>  void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>  {
>      CPUCRISState *env = &cpu->env;
> -    uint64_t entry, high;
> +    uint64_t entry;
>      int kcmdline_len;
>      int image_size;
>  
> @@ -76,7 +76,7 @@ void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>         devboard SDK.  */
>      image_size = load_elf(li->image_filename, NULL,
>                            translate_kernel_address, NULL,
> -                          &entry, NULL, &high, NULL, 0, EM_CRIS, 0, 0);
> +                          &entry, NULL, NULL, NULL, 0, EM_CRIS, 0, 0);
>      li->entry = entry;
>      if (image_size < 0) {
>          /* Takes a kimage from the axis devboard SDK.  */
> diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
> index 925e3f7c9d..8ad3c27f2c 100644
> --- a/hw/microblaze/boot.c
> +++ b/hw/microblaze/boot.c
> @@ -135,7 +135,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>  
>      if (kernel_filename) {
>          int kernel_size;
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          uint32_t base32;
>          int big_endian = 0;
>  
> @@ -145,7 +145,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>  
>          /* Boots a kernel elf binary.  */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL,
> +                               &entry, NULL, &high, NULL,
>                                 big_endian, EM_MICROBLAZE, 0, 0);
>          base32 = entry;
>          if (base32 == 0xc0000000) {
> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
> index 8ca31e5162..507e549fca 100644
> --- a/hw/mips/fuloong2e.c
> +++ b/hw/mips/fuloong2e.c
> @@ -107,7 +107,7 @@ static void GCC_FMT_ATTR(3, 4) prom_set(uint32_t *prom_buf, int index,
>  
>  static int64_t load_kernel(CPUMIPSState *env)
>  {
> -    int64_t kernel_entry, kernel_low, kernel_high, initrd_size;
> +    int64_t kernel_entry, kernel_high, initrd_size;
>      int index = 0;
>      long kernel_size;
>      ram_addr_t initrd_offset;
> @@ -116,9 +116,9 @@ static int64_t load_kernel(CPUMIPSState *env)
>  
>      kernel_size = load_elf(loaderparams.kernel_filename, NULL,
>                             cpu_mips_kseg0_to_phys, NULL,
> -                           (uint64_t *)&kernel_entry,
> -                           (uint64_t *)&kernel_low, (uint64_t *)&kernel_high,
> -                           NULL, 0, EM_MIPS, 1, 0);
> +                           (uint64_t *)&kernel_entry, NULL,
> +                           (uint64_t *)&kernel_high, NULL,
> +                           0, EM_MIPS, 1, 0);
>      if (kernel_size < 0) {
>          error_report("could not load kernel '%s': %s",
>                       loaderparams.kernel_filename,
> diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c
> index 51a98287b5..a765e9f6be 100644
> --- a/hw/moxie/moxiesim.c
> +++ b/hw/moxie/moxiesim.c
> @@ -52,13 +52,13 @@ typedef struct {
>  
>  static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)
>  {
> -    uint64_t entry, kernel_low, kernel_high;
> +    uint64_t entry, kernel_high;
>      int64_t initrd_size;
>      long kernel_size;
>      ram_addr_t initrd_offset;
>  
>      kernel_size = load_elf(loader_params->kernel_filename,  NULL, NULL, NULL,
> -                           &entry, &kernel_low, &kernel_high, NULL, 1, EM_MOXIE,
> +                           &entry, NULL, &kernel_high, NULL, 1, EM_MOXIE,
>                             0, 0);
>  
>      if (kernel_size <= 0) {
> diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c
> index 88224aa84c..1df3b66c29 100644
> --- a/hw/nios2/boot.c
> +++ b/hw/nios2/boot.c
> @@ -139,7 +139,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>  
>      if (kernel_filename) {
>          int kernel_size, fdt_size;
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          int big_endian = 0;
>  
>  #ifdef TARGET_WORDS_BIGENDIAN
> @@ -148,7 +148,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>  
>          /* Boots a kernel elf binary. */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL,
> +                               &entry, NULL, &high, NULL,
>                                 big_endian, EM_ALTERA_NIOS2, 0, 0);
>          if ((uint32_t)entry == 0xc0000000) {
>              /*
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 828c5992ae..a3f25ab479 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -177,7 +177,6 @@ static void ppc_core99_init(MachineState *machine)
>      }
>  
>      if (linux_boot) {
> -        uint64_t lowaddr = 0;
>          int bswap_needed;
>  
>  #ifdef BSWAP_NEEDED
> @@ -188,9 +187,8 @@ static void ppc_core99_init(MachineState *machine)
>          kernel_base = KERNEL_LOAD_ADDR;
>  
>          kernel_size = load_elf(kernel_filename, NULL,
> -                               translate_kernel_address, NULL,
> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               translate_kernel_address, NULL, NULL, NULL,
> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>          if (kernel_size < 0)
>              kernel_size = load_aout(kernel_filename, kernel_base,
>                                      ram_size - kernel_base, bswap_needed,
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index f8c204ead7..4bcce22a96 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -150,7 +150,6 @@ static void ppc_heathrow_init(MachineState *machine)
>      }
>  
>      if (linux_boot) {
> -        uint64_t lowaddr = 0;
>          int bswap_needed;
>  
>  #ifdef BSWAP_NEEDED
> @@ -160,9 +159,8 @@ static void ppc_heathrow_init(MachineState *machine)
>  #endif
>          kernel_base = KERNEL_LOAD_ADDR;
>          kernel_size = load_elf(kernel_filename, NULL,
> -                               translate_kernel_address, NULL,
> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               translate_kernel_address, NULL, NULL, NULL,
> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>          if (kernel_size < 0)
>              kernel_size = load_aout(kernel_filename, kernel_base,
>                                      ram_size - kernel_base, bswap_needed,
> diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
> index 4c5e9e4373..74028dc986 100644
> --- a/hw/ppc/ppc440_bamboo.c
> +++ b/hw/ppc/ppc440_bamboo.c
> @@ -172,9 +172,6 @@ static void bamboo_init(MachineState *machine)
>      PCIBus *pcibus;
>      PowerPCCPU *cpu;
>      CPUPPCState *env;
> -    uint64_t elf_entry;
> -    uint64_t elf_lowaddr;
> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>      target_long initrd_size = 0;
>      DeviceState *dev;
>      int success;
> @@ -246,14 +243,14 @@ static void bamboo_init(MachineState *machine)
>  
>      /* Load kernel. */
>      if (kernel_filename) {
> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>          success = load_uimage(kernel_filename, &entry, &loadaddr, NULL,
>                                NULL, NULL);
>          if (success < 0) {
> +            uint64_t elf_entry;
>              success = load_elf(kernel_filename, NULL, NULL, NULL, &elf_entry,
> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               NULL, NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>              entry = elf_entry;
> -            loadaddr = elf_lowaddr;
>          }
>          /* XXX try again as binary */
>          if (success < 0) {
> diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
> index 1a106a68de..71f74e983c 100644
> --- a/hw/ppc/sam460ex.c
> +++ b/hw/ppc/sam460ex.c
> @@ -286,7 +286,6 @@ static void sam460ex_init(MachineState *machine)
>      CPUPPCState *env;
>      I2CBus *i2c;
>      hwaddr entry = UBOOT_ENTRY;
> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>      target_long initrd_size = 0;
>      DeviceState *dev;
>      SysBusDevice *sbdev;
> @@ -426,17 +425,16 @@ static void sam460ex_init(MachineState *machine)
>  
>      /* Load kernel. */
>      if (machine->kernel_filename) {
> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>          success = load_uimage(machine->kernel_filename, &entry, &loadaddr,
>                                NULL, NULL, NULL);
>          if (success < 0) {
> -            uint64_t elf_entry, elf_lowaddr;
> +            uint64_t elf_entry;
>  
> -            success = load_elf(machine->kernel_filename, NULL,
> -                               NULL, NULL, &elf_entry,
> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE, 0,
> -                               0);
> +            success = load_elf(machine->kernel_filename, NULL, NULL, NULL,
> +                               &elf_entry, NULL, NULL, NULL,
> +                               1, PPC_ELF_MACHINE, 0, 0);
>              entry = elf_entry;
> -            loadaddr = elf_lowaddr;
>          }
>          /* XXX try again as binary */
>          if (success < 0) {
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index f6f034d039..f4e8e2e139 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -2972,18 +2972,15 @@ static void spapr_machine_init(MachineState *machine)
>      }
>  
>      if (kernel_filename) {
> -        uint64_t lowaddr = 0;
> -
>          spapr->kernel_size = load_elf(kernel_filename, NULL,
>                                        translate_kernel_address, spapr,
> -                                      NULL, &lowaddr, NULL, NULL, 1,
> +                                      NULL, NULL, NULL, NULL, 1,
>                                        PPC_ELF_MACHINE, 0, 0);
>          if (spapr->kernel_size == ELF_LOAD_WRONG_ENDIAN) {
>              spapr->kernel_size = load_elf(kernel_filename, NULL,
> -                                          translate_kernel_address, spapr, NULL,
> -                                          &lowaddr, NULL, NULL, 0,
> -                                          PPC_ELF_MACHINE,
> -                                          0, 0);
> +                                          translate_kernel_address, spapr,
> +                                          NULL, NULL, NULL, NULL, 0,
> +                                          PPC_ELF_MACHINE, 0, 0);
>              spapr->kernel_le = spapr->kernel_size > 0;
>          }
>          if (spapr->kernel_size < 0) {
> diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
> index 78c4901be1..c790c1113f 100644
> --- a/hw/ppc/virtex_ml507.c
> +++ b/hw/ppc/virtex_ml507.c
> @@ -250,12 +250,12 @@ static void virtex_init(MachineState *machine)
>      sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
>  
>      if (kernel_filename) {
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          hwaddr boot_offset;
>  
>          /* Boots a kernel elf binary.  */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL, 1, PPC_ELF_MACHINE,
> +                               &entry, NULL, &high, NULL, 1, PPC_ELF_MACHINE,
>                                 0, 0);
>          boot_info.bootstrap_pc = entry & 0x00ffffff;
>  
> diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
> index adb421b91b..ab8da252ee 100644
> --- a/hw/riscv/boot.c
> +++ b/hw/riscv/boot.c
> @@ -85,10 +85,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>                                   hwaddr firmware_load_addr,
>                                   symbol_fn_t sym_cb)
>  {
> -    uint64_t firmware_entry, firmware_start, firmware_end;
> +    uint64_t firmware_entry;
>  
>      if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL,
> -                         &firmware_entry, &firmware_start, &firmware_end, NULL,
> +                         &firmware_entry, NULL, NULL, NULL,
>                           0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>          return firmware_entry;
>      }
> @@ -104,10 +104,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>  
>  target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb)
>  {
> -    uint64_t kernel_entry, kernel_high;
> +    uint64_t kernel_entry;
>  
>      if (load_elf_ram_sym(kernel_filename, NULL, NULL, NULL,
> -                         &kernel_entry, NULL, &kernel_high, NULL, 0,
> +                         &kernel_entry, NULL, NULL, NULL, 0,
>                           EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>          return kernel_entry;
>      }
> diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c
> index aeb46d86f5..cbac50db2d 100644
> --- a/hw/xtensa/sim.c
> +++ b/hw/xtensa/sim.c
> @@ -106,9 +106,8 @@ void xtensa_sim_load_kernel(XtensaCPU *cpu, MachineState *machine)
>  
>      if (kernel_filename) {
>          uint64_t elf_entry;
> -        uint64_t elf_lowaddr;
>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
> -                               &elf_entry, &elf_lowaddr, NULL, NULL, big_endian,
> +                               &elf_entry, NULL, NULL, NULL, big_endian,
>                                 EM_XTENSA, 0, 0);
>  
>          if (success > 0) {
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 10de15855a..b1470b88e6 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -413,9 +413,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
>          env->regs[2] = tagptr;
>  
>          uint64_t elf_entry;
> -        uint64_t elf_lowaddr;
>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
> -                &elf_entry, &elf_lowaddr, NULL, NULL, be, EM_XTENSA, 0, 0);
> +                &elf_entry, NULL, NULL, NULL, be, EM_XTENSA, 0, 0);
>          if (success > 0) {
>              entry_point = elf_entry;
>          } else {
Alistair Francis July 7, 2020, 4 p.m. UTC | #2
On Sun, Jul 5, 2020 at 10:41 AM BALATON Zoltan <balaton@eik.bme.hu> wrote:
>
> Several callers of load_elf() pass pointers for lowaddr and highaddr
> parameters which are then not used for anything. This may stem from a
> misunderstanding that load_elf need a value here but in fact it can
> take NULL to ignore these values. Remove such unused variables and
> pass NULL instead from callers that don't need these.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  hw/alpha/dp264.c       |  8 ++++----
>  hw/arm/armv7m.c        |  4 +---
>  hw/cris/boot.c         |  4 ++--
>  hw/microblaze/boot.c   |  4 ++--
>  hw/mips/fuloong2e.c    |  8 ++++----
>  hw/moxie/moxiesim.c    |  4 ++--
>  hw/nios2/boot.c        |  4 ++--
>  hw/ppc/mac_newworld.c  |  6 ++----
>  hw/ppc/mac_oldworld.c  |  6 ++----
>  hw/ppc/ppc440_bamboo.c |  9 +++------
>  hw/ppc/sam460ex.c      | 12 +++++-------
>  hw/ppc/spapr.c         | 11 ++++-------
>  hw/ppc/virtex_ml507.c  |  4 ++--
>  hw/riscv/boot.c        |  8 ++++----
>  hw/xtensa/sim.c        |  3 +--
>  hw/xtensa/xtfpga.c     |  3 +--
>  16 files changed, 41 insertions(+), 57 deletions(-)
>
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index f7751b18f6..4d24518d1d 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -62,8 +62,8 @@ static void clipper_init(MachineState *machine)
>      qemu_irq rtc_irq;
>      long size, i;
>      char *palcode_filename;
> -    uint64_t palcode_entry, palcode_low, palcode_high;
> -    uint64_t kernel_entry, kernel_low, kernel_high;
> +    uint64_t palcode_entry;
> +    uint64_t kernel_entry, kernel_low;
>      unsigned int smp_cpus = machine->smp.cpus;
>
>      /* Create up to 4 cpus.  */
> @@ -113,7 +113,7 @@ static void clipper_init(MachineState *machine)
>          exit(1);
>      }
>      size = load_elf(palcode_filename, NULL, cpu_alpha_superpage_to_phys,
> -                    NULL, &palcode_entry, &palcode_low, &palcode_high, NULL,
> +                    NULL, &palcode_entry, NULL, NULL, NULL,
>                      0, EM_ALPHA, 0, 0);
>      if (size < 0) {
>          error_report("could not load palcode '%s'", palcode_filename);
> @@ -132,7 +132,7 @@ static void clipper_init(MachineState *machine)
>          uint64_t param_offset;
>
>          size = load_elf(kernel_filename, NULL, cpu_alpha_superpage_to_phys,
> -                        NULL, &kernel_entry, &kernel_low, &kernel_high, NULL,
> +                        NULL, &kernel_entry, &kernel_low, NULL, NULL,
>                          0, EM_ALPHA, 0, 0);
>          if (size < 0) {
>              error_report("could not load kernel '%s'", kernel_filename);
> diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
> index 3308211e9c..92f859d760 100644
> --- a/hw/arm/armv7m.c
> +++ b/hw/arm/armv7m.c
> @@ -309,7 +309,6 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>  {
>      int image_size;
>      uint64_t entry;
> -    uint64_t lowaddr;
>      int big_endian;
>      AddressSpace *as;
>      int asidx;
> @@ -330,12 +329,11 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>
>      if (kernel_filename) {
>          image_size = load_elf_as(kernel_filename, NULL, NULL, NULL,
> -                                 &entry, &lowaddr, NULL,
> +                                 &entry, NULL, NULL,
>                                   NULL, big_endian, EM_ARM, 1, 0, as);
>          if (image_size < 0) {
>              image_size = load_image_targphys_as(kernel_filename, 0,
>                                                  mem_size, as);
> -            lowaddr = 0;
>          }
>          if (image_size < 0) {
>              error_report("Could not load kernel '%s'", kernel_filename);
> diff --git a/hw/cris/boot.c b/hw/cris/boot.c
> index b8947bc660..aa8d2756d6 100644
> --- a/hw/cris/boot.c
> +++ b/hw/cris/boot.c
> @@ -67,7 +67,7 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
>  void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>  {
>      CPUCRISState *env = &cpu->env;
> -    uint64_t entry, high;
> +    uint64_t entry;
>      int kcmdline_len;
>      int image_size;
>
> @@ -76,7 +76,7 @@ void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>         devboard SDK.  */
>      image_size = load_elf(li->image_filename, NULL,
>                            translate_kernel_address, NULL,
> -                          &entry, NULL, &high, NULL, 0, EM_CRIS, 0, 0);
> +                          &entry, NULL, NULL, NULL, 0, EM_CRIS, 0, 0);
>      li->entry = entry;
>      if (image_size < 0) {
>          /* Takes a kimage from the axis devboard SDK.  */
> diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
> index 925e3f7c9d..8ad3c27f2c 100644
> --- a/hw/microblaze/boot.c
> +++ b/hw/microblaze/boot.c
> @@ -135,7 +135,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>
>      if (kernel_filename) {
>          int kernel_size;
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          uint32_t base32;
>          int big_endian = 0;
>
> @@ -145,7 +145,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>
>          /* Boots a kernel elf binary.  */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL,
> +                               &entry, NULL, &high, NULL,
>                                 big_endian, EM_MICROBLAZE, 0, 0);
>          base32 = entry;
>          if (base32 == 0xc0000000) {
> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
> index 8ca31e5162..507e549fca 100644
> --- a/hw/mips/fuloong2e.c
> +++ b/hw/mips/fuloong2e.c
> @@ -107,7 +107,7 @@ static void GCC_FMT_ATTR(3, 4) prom_set(uint32_t *prom_buf, int index,
>
>  static int64_t load_kernel(CPUMIPSState *env)
>  {
> -    int64_t kernel_entry, kernel_low, kernel_high, initrd_size;
> +    int64_t kernel_entry, kernel_high, initrd_size;
>      int index = 0;
>      long kernel_size;
>      ram_addr_t initrd_offset;
> @@ -116,9 +116,9 @@ static int64_t load_kernel(CPUMIPSState *env)
>
>      kernel_size = load_elf(loaderparams.kernel_filename, NULL,
>                             cpu_mips_kseg0_to_phys, NULL,
> -                           (uint64_t *)&kernel_entry,
> -                           (uint64_t *)&kernel_low, (uint64_t *)&kernel_high,
> -                           NULL, 0, EM_MIPS, 1, 0);
> +                           (uint64_t *)&kernel_entry, NULL,
> +                           (uint64_t *)&kernel_high, NULL,
> +                           0, EM_MIPS, 1, 0);
>      if (kernel_size < 0) {
>          error_report("could not load kernel '%s': %s",
>                       loaderparams.kernel_filename,
> diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c
> index 51a98287b5..a765e9f6be 100644
> --- a/hw/moxie/moxiesim.c
> +++ b/hw/moxie/moxiesim.c
> @@ -52,13 +52,13 @@ typedef struct {
>
>  static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)
>  {
> -    uint64_t entry, kernel_low, kernel_high;
> +    uint64_t entry, kernel_high;
>      int64_t initrd_size;
>      long kernel_size;
>      ram_addr_t initrd_offset;
>
>      kernel_size = load_elf(loader_params->kernel_filename,  NULL, NULL, NULL,
> -                           &entry, &kernel_low, &kernel_high, NULL, 1, EM_MOXIE,
> +                           &entry, NULL, &kernel_high, NULL, 1, EM_MOXIE,
>                             0, 0);
>
>      if (kernel_size <= 0) {
> diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c
> index 88224aa84c..1df3b66c29 100644
> --- a/hw/nios2/boot.c
> +++ b/hw/nios2/boot.c
> @@ -139,7 +139,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>
>      if (kernel_filename) {
>          int kernel_size, fdt_size;
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          int big_endian = 0;
>
>  #ifdef TARGET_WORDS_BIGENDIAN
> @@ -148,7 +148,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>
>          /* Boots a kernel elf binary. */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL,
> +                               &entry, NULL, &high, NULL,
>                                 big_endian, EM_ALTERA_NIOS2, 0, 0);
>          if ((uint32_t)entry == 0xc0000000) {
>              /*
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 828c5992ae..a3f25ab479 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -177,7 +177,6 @@ static void ppc_core99_init(MachineState *machine)
>      }
>
>      if (linux_boot) {
> -        uint64_t lowaddr = 0;
>          int bswap_needed;
>
>  #ifdef BSWAP_NEEDED
> @@ -188,9 +187,8 @@ static void ppc_core99_init(MachineState *machine)
>          kernel_base = KERNEL_LOAD_ADDR;
>
>          kernel_size = load_elf(kernel_filename, NULL,
> -                               translate_kernel_address, NULL,
> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               translate_kernel_address, NULL, NULL, NULL,
> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>          if (kernel_size < 0)
>              kernel_size = load_aout(kernel_filename, kernel_base,
>                                      ram_size - kernel_base, bswap_needed,
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index f8c204ead7..4bcce22a96 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -150,7 +150,6 @@ static void ppc_heathrow_init(MachineState *machine)
>      }
>
>      if (linux_boot) {
> -        uint64_t lowaddr = 0;
>          int bswap_needed;
>
>  #ifdef BSWAP_NEEDED
> @@ -160,9 +159,8 @@ static void ppc_heathrow_init(MachineState *machine)
>  #endif
>          kernel_base = KERNEL_LOAD_ADDR;
>          kernel_size = load_elf(kernel_filename, NULL,
> -                               translate_kernel_address, NULL,
> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               translate_kernel_address, NULL, NULL, NULL,
> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>          if (kernel_size < 0)
>              kernel_size = load_aout(kernel_filename, kernel_base,
>                                      ram_size - kernel_base, bswap_needed,
> diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
> index 4c5e9e4373..74028dc986 100644
> --- a/hw/ppc/ppc440_bamboo.c
> +++ b/hw/ppc/ppc440_bamboo.c
> @@ -172,9 +172,6 @@ static void bamboo_init(MachineState *machine)
>      PCIBus *pcibus;
>      PowerPCCPU *cpu;
>      CPUPPCState *env;
> -    uint64_t elf_entry;
> -    uint64_t elf_lowaddr;
> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>      target_long initrd_size = 0;
>      DeviceState *dev;
>      int success;
> @@ -246,14 +243,14 @@ static void bamboo_init(MachineState *machine)
>
>      /* Load kernel. */
>      if (kernel_filename) {
> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>          success = load_uimage(kernel_filename, &entry, &loadaddr, NULL,
>                                NULL, NULL);
>          if (success < 0) {
> +            uint64_t elf_entry;
>              success = load_elf(kernel_filename, NULL, NULL, NULL, &elf_entry,
> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
> -                               0, 0);
> +                               NULL, NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>              entry = elf_entry;
> -            loadaddr = elf_lowaddr;
>          }
>          /* XXX try again as binary */
>          if (success < 0) {
> diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
> index 1a106a68de..71f74e983c 100644
> --- a/hw/ppc/sam460ex.c
> +++ b/hw/ppc/sam460ex.c
> @@ -286,7 +286,6 @@ static void sam460ex_init(MachineState *machine)
>      CPUPPCState *env;
>      I2CBus *i2c;
>      hwaddr entry = UBOOT_ENTRY;
> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>      target_long initrd_size = 0;
>      DeviceState *dev;
>      SysBusDevice *sbdev;
> @@ -426,17 +425,16 @@ static void sam460ex_init(MachineState *machine)
>
>      /* Load kernel. */
>      if (machine->kernel_filename) {
> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>          success = load_uimage(machine->kernel_filename, &entry, &loadaddr,
>                                NULL, NULL, NULL);
>          if (success < 0) {
> -            uint64_t elf_entry, elf_lowaddr;
> +            uint64_t elf_entry;
>
> -            success = load_elf(machine->kernel_filename, NULL,
> -                               NULL, NULL, &elf_entry,
> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE, 0,
> -                               0);
> +            success = load_elf(machine->kernel_filename, NULL, NULL, NULL,
> +                               &elf_entry, NULL, NULL, NULL,
> +                               1, PPC_ELF_MACHINE, 0, 0);
>              entry = elf_entry;
> -            loadaddr = elf_lowaddr;
>          }
>          /* XXX try again as binary */
>          if (success < 0) {
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index f6f034d039..f4e8e2e139 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -2972,18 +2972,15 @@ static void spapr_machine_init(MachineState *machine)
>      }
>
>      if (kernel_filename) {
> -        uint64_t lowaddr = 0;
> -
>          spapr->kernel_size = load_elf(kernel_filename, NULL,
>                                        translate_kernel_address, spapr,
> -                                      NULL, &lowaddr, NULL, NULL, 1,
> +                                      NULL, NULL, NULL, NULL, 1,
>                                        PPC_ELF_MACHINE, 0, 0);
>          if (spapr->kernel_size == ELF_LOAD_WRONG_ENDIAN) {
>              spapr->kernel_size = load_elf(kernel_filename, NULL,
> -                                          translate_kernel_address, spapr, NULL,
> -                                          &lowaddr, NULL, NULL, 0,
> -                                          PPC_ELF_MACHINE,
> -                                          0, 0);
> +                                          translate_kernel_address, spapr,
> +                                          NULL, NULL, NULL, NULL, 0,
> +                                          PPC_ELF_MACHINE, 0, 0);
>              spapr->kernel_le = spapr->kernel_size > 0;
>          }
>          if (spapr->kernel_size < 0) {
> diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
> index 78c4901be1..c790c1113f 100644
> --- a/hw/ppc/virtex_ml507.c
> +++ b/hw/ppc/virtex_ml507.c
> @@ -250,12 +250,12 @@ static void virtex_init(MachineState *machine)
>      sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
>
>      if (kernel_filename) {
> -        uint64_t entry, low, high;
> +        uint64_t entry, high;
>          hwaddr boot_offset;
>
>          /* Boots a kernel elf binary.  */
>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
> -                               &entry, &low, &high, NULL, 1, PPC_ELF_MACHINE,
> +                               &entry, NULL, &high, NULL, 1, PPC_ELF_MACHINE,
>                                 0, 0);
>          boot_info.bootstrap_pc = entry & 0x00ffffff;
>
> diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
> index adb421b91b..ab8da252ee 100644
> --- a/hw/riscv/boot.c
> +++ b/hw/riscv/boot.c
> @@ -85,10 +85,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>                                   hwaddr firmware_load_addr,
>                                   symbol_fn_t sym_cb)
>  {
> -    uint64_t firmware_entry, firmware_start, firmware_end;
> +    uint64_t firmware_entry;
>
>      if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL,
> -                         &firmware_entry, &firmware_start, &firmware_end, NULL,
> +                         &firmware_entry, NULL, NULL, NULL,
>                           0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>          return firmware_entry;
>      }
> @@ -104,10 +104,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>
>  target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb)
>  {
> -    uint64_t kernel_entry, kernel_high;
> +    uint64_t kernel_entry;
>
>      if (load_elf_ram_sym(kernel_filename, NULL, NULL, NULL,
> -                         &kernel_entry, NULL, &kernel_high, NULL, 0,
> +                         &kernel_entry, NULL, NULL, NULL, 0,
>                           EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>          return kernel_entry;
>      }
> diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c
> index aeb46d86f5..cbac50db2d 100644
> --- a/hw/xtensa/sim.c
> +++ b/hw/xtensa/sim.c
> @@ -106,9 +106,8 @@ void xtensa_sim_load_kernel(XtensaCPU *cpu, MachineState *machine)
>
>      if (kernel_filename) {
>          uint64_t elf_entry;
> -        uint64_t elf_lowaddr;
>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
> -                               &elf_entry, &elf_lowaddr, NULL, NULL, big_endian,
> +                               &elf_entry, NULL, NULL, NULL, big_endian,
>                                 EM_XTENSA, 0, 0);
>
>          if (success > 0) {
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 10de15855a..b1470b88e6 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -413,9 +413,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
>          env->regs[2] = tagptr;
>
>          uint64_t elf_entry;
> -        uint64_t elf_lowaddr;
>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
> -                &elf_entry, &elf_lowaddr, NULL, NULL, be, EM_XTENSA, 0, 0);
> +                &elf_entry, NULL, NULL, NULL, be, EM_XTENSA, 0, 0);
>          if (success > 0) {
>              entry_point = elf_entry;
>          } else {
> --
> 2.21.3
>
>
BALATON Zoltan July 7, 2020, 6:54 p.m. UTC | #3
On Tue, 7 Jul 2020, Alistair Francis wrote:
> On Sun, Jul 5, 2020 at 10:41 AM BALATON Zoltan <balaton@eik.bme.hu> wrote:
>> Several callers of load_elf() pass pointers for lowaddr and highaddr
>> parameters which are then not used for anything. This may stem from a
>> misunderstanding that load_elf need a value here but in fact it can
>> take NULL to ignore these values. Remove such unused variables and
>> pass NULL instead from callers that don't need these.
>>
>> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

So this got a few review and acked by but since it touches multiple parts 
who will actually send pull or merge it? I'd like to make sure this won't 
miss the freeze deadline just because everybody thinks this should go in 
via some other maintainer. What's the best way for this? Trivial 
maintainers or Peter should handle such patches?

Regards,
BALATON Zoltan

> Alistair
>
>> ---
>>  hw/alpha/dp264.c       |  8 ++++----
>>  hw/arm/armv7m.c        |  4 +---
>>  hw/cris/boot.c         |  4 ++--
>>  hw/microblaze/boot.c   |  4 ++--
>>  hw/mips/fuloong2e.c    |  8 ++++----
>>  hw/moxie/moxiesim.c    |  4 ++--
>>  hw/nios2/boot.c        |  4 ++--
>>  hw/ppc/mac_newworld.c  |  6 ++----
>>  hw/ppc/mac_oldworld.c  |  6 ++----
>>  hw/ppc/ppc440_bamboo.c |  9 +++------
>>  hw/ppc/sam460ex.c      | 12 +++++-------
>>  hw/ppc/spapr.c         | 11 ++++-------
>>  hw/ppc/virtex_ml507.c  |  4 ++--
>>  hw/riscv/boot.c        |  8 ++++----
>>  hw/xtensa/sim.c        |  3 +--
>>  hw/xtensa/xtfpga.c     |  3 +--
>>  16 files changed, 41 insertions(+), 57 deletions(-)
>>
>> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
>> index f7751b18f6..4d24518d1d 100644
>> --- a/hw/alpha/dp264.c
>> +++ b/hw/alpha/dp264.c
>> @@ -62,8 +62,8 @@ static void clipper_init(MachineState *machine)
>>      qemu_irq rtc_irq;
>>      long size, i;
>>      char *palcode_filename;
>> -    uint64_t palcode_entry, palcode_low, palcode_high;
>> -    uint64_t kernel_entry, kernel_low, kernel_high;
>> +    uint64_t palcode_entry;
>> +    uint64_t kernel_entry, kernel_low;
>>      unsigned int smp_cpus = machine->smp.cpus;
>>
>>      /* Create up to 4 cpus.  */
>> @@ -113,7 +113,7 @@ static void clipper_init(MachineState *machine)
>>          exit(1);
>>      }
>>      size = load_elf(palcode_filename, NULL, cpu_alpha_superpage_to_phys,
>> -                    NULL, &palcode_entry, &palcode_low, &palcode_high, NULL,
>> +                    NULL, &palcode_entry, NULL, NULL, NULL,
>>                      0, EM_ALPHA, 0, 0);
>>      if (size < 0) {
>>          error_report("could not load palcode '%s'", palcode_filename);
>> @@ -132,7 +132,7 @@ static void clipper_init(MachineState *machine)
>>          uint64_t param_offset;
>>
>>          size = load_elf(kernel_filename, NULL, cpu_alpha_superpage_to_phys,
>> -                        NULL, &kernel_entry, &kernel_low, &kernel_high, NULL,
>> +                        NULL, &kernel_entry, &kernel_low, NULL, NULL,
>>                          0, EM_ALPHA, 0, 0);
>>          if (size < 0) {
>>              error_report("could not load kernel '%s'", kernel_filename);
>> diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
>> index 3308211e9c..92f859d760 100644
>> --- a/hw/arm/armv7m.c
>> +++ b/hw/arm/armv7m.c
>> @@ -309,7 +309,6 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>>  {
>>      int image_size;
>>      uint64_t entry;
>> -    uint64_t lowaddr;
>>      int big_endian;
>>      AddressSpace *as;
>>      int asidx;
>> @@ -330,12 +329,11 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
>>
>>      if (kernel_filename) {
>>          image_size = load_elf_as(kernel_filename, NULL, NULL, NULL,
>> -                                 &entry, &lowaddr, NULL,
>> +                                 &entry, NULL, NULL,
>>                                   NULL, big_endian, EM_ARM, 1, 0, as);
>>          if (image_size < 0) {
>>              image_size = load_image_targphys_as(kernel_filename, 0,
>>                                                  mem_size, as);
>> -            lowaddr = 0;
>>          }
>>          if (image_size < 0) {
>>              error_report("Could not load kernel '%s'", kernel_filename);
>> diff --git a/hw/cris/boot.c b/hw/cris/boot.c
>> index b8947bc660..aa8d2756d6 100644
>> --- a/hw/cris/boot.c
>> +++ b/hw/cris/boot.c
>> @@ -67,7 +67,7 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
>>  void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>>  {
>>      CPUCRISState *env = &cpu->env;
>> -    uint64_t entry, high;
>> +    uint64_t entry;
>>      int kcmdline_len;
>>      int image_size;
>>
>> @@ -76,7 +76,7 @@ void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
>>         devboard SDK.  */
>>      image_size = load_elf(li->image_filename, NULL,
>>                            translate_kernel_address, NULL,
>> -                          &entry, NULL, &high, NULL, 0, EM_CRIS, 0, 0);
>> +                          &entry, NULL, NULL, NULL, 0, EM_CRIS, 0, 0);
>>      li->entry = entry;
>>      if (image_size < 0) {
>>          /* Takes a kimage from the axis devboard SDK.  */
>> diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
>> index 925e3f7c9d..8ad3c27f2c 100644
>> --- a/hw/microblaze/boot.c
>> +++ b/hw/microblaze/boot.c
>> @@ -135,7 +135,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>>
>>      if (kernel_filename) {
>>          int kernel_size;
>> -        uint64_t entry, low, high;
>> +        uint64_t entry, high;
>>          uint32_t base32;
>>          int big_endian = 0;
>>
>> @@ -145,7 +145,7 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
>>
>>          /* Boots a kernel elf binary.  */
>>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
>> -                               &entry, &low, &high, NULL,
>> +                               &entry, NULL, &high, NULL,
>>                                 big_endian, EM_MICROBLAZE, 0, 0);
>>          base32 = entry;
>>          if (base32 == 0xc0000000) {
>> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
>> index 8ca31e5162..507e549fca 100644
>> --- a/hw/mips/fuloong2e.c
>> +++ b/hw/mips/fuloong2e.c
>> @@ -107,7 +107,7 @@ static void GCC_FMT_ATTR(3, 4) prom_set(uint32_t *prom_buf, int index,
>>
>>  static int64_t load_kernel(CPUMIPSState *env)
>>  {
>> -    int64_t kernel_entry, kernel_low, kernel_high, initrd_size;
>> +    int64_t kernel_entry, kernel_high, initrd_size;
>>      int index = 0;
>>      long kernel_size;
>>      ram_addr_t initrd_offset;
>> @@ -116,9 +116,9 @@ static int64_t load_kernel(CPUMIPSState *env)
>>
>>      kernel_size = load_elf(loaderparams.kernel_filename, NULL,
>>                             cpu_mips_kseg0_to_phys, NULL,
>> -                           (uint64_t *)&kernel_entry,
>> -                           (uint64_t *)&kernel_low, (uint64_t *)&kernel_high,
>> -                           NULL, 0, EM_MIPS, 1, 0);
>> +                           (uint64_t *)&kernel_entry, NULL,
>> +                           (uint64_t *)&kernel_high, NULL,
>> +                           0, EM_MIPS, 1, 0);
>>      if (kernel_size < 0) {
>>          error_report("could not load kernel '%s': %s",
>>                       loaderparams.kernel_filename,
>> diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c
>> index 51a98287b5..a765e9f6be 100644
>> --- a/hw/moxie/moxiesim.c
>> +++ b/hw/moxie/moxiesim.c
>> @@ -52,13 +52,13 @@ typedef struct {
>>
>>  static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)
>>  {
>> -    uint64_t entry, kernel_low, kernel_high;
>> +    uint64_t entry, kernel_high;
>>      int64_t initrd_size;
>>      long kernel_size;
>>      ram_addr_t initrd_offset;
>>
>>      kernel_size = load_elf(loader_params->kernel_filename,  NULL, NULL, NULL,
>> -                           &entry, &kernel_low, &kernel_high, NULL, 1, EM_MOXIE,
>> +                           &entry, NULL, &kernel_high, NULL, 1, EM_MOXIE,
>>                             0, 0);
>>
>>      if (kernel_size <= 0) {
>> diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c
>> index 88224aa84c..1df3b66c29 100644
>> --- a/hw/nios2/boot.c
>> +++ b/hw/nios2/boot.c
>> @@ -139,7 +139,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>>
>>      if (kernel_filename) {
>>          int kernel_size, fdt_size;
>> -        uint64_t entry, low, high;
>> +        uint64_t entry, high;
>>          int big_endian = 0;
>>
>>  #ifdef TARGET_WORDS_BIGENDIAN
>> @@ -148,7 +148,7 @@ void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
>>
>>          /* Boots a kernel elf binary. */
>>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
>> -                               &entry, &low, &high, NULL,
>> +                               &entry, NULL, &high, NULL,
>>                                 big_endian, EM_ALTERA_NIOS2, 0, 0);
>>          if ((uint32_t)entry == 0xc0000000) {
>>              /*
>> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
>> index 828c5992ae..a3f25ab479 100644
>> --- a/hw/ppc/mac_newworld.c
>> +++ b/hw/ppc/mac_newworld.c
>> @@ -177,7 +177,6 @@ static void ppc_core99_init(MachineState *machine)
>>      }
>>
>>      if (linux_boot) {
>> -        uint64_t lowaddr = 0;
>>          int bswap_needed;
>>
>>  #ifdef BSWAP_NEEDED
>> @@ -188,9 +187,8 @@ static void ppc_core99_init(MachineState *machine)
>>          kernel_base = KERNEL_LOAD_ADDR;
>>
>>          kernel_size = load_elf(kernel_filename, NULL,
>> -                               translate_kernel_address, NULL,
>> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
>> -                               0, 0);
>> +                               translate_kernel_address, NULL, NULL, NULL,
>> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>>          if (kernel_size < 0)
>>              kernel_size = load_aout(kernel_filename, kernel_base,
>>                                      ram_size - kernel_base, bswap_needed,
>> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
>> index f8c204ead7..4bcce22a96 100644
>> --- a/hw/ppc/mac_oldworld.c
>> +++ b/hw/ppc/mac_oldworld.c
>> @@ -150,7 +150,6 @@ static void ppc_heathrow_init(MachineState *machine)
>>      }
>>
>>      if (linux_boot) {
>> -        uint64_t lowaddr = 0;
>>          int bswap_needed;
>>
>>  #ifdef BSWAP_NEEDED
>> @@ -160,9 +159,8 @@ static void ppc_heathrow_init(MachineState *machine)
>>  #endif
>>          kernel_base = KERNEL_LOAD_ADDR;
>>          kernel_size = load_elf(kernel_filename, NULL,
>> -                               translate_kernel_address, NULL,
>> -                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
>> -                               0, 0);
>> +                               translate_kernel_address, NULL, NULL, NULL,
>> +                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>>          if (kernel_size < 0)
>>              kernel_size = load_aout(kernel_filename, kernel_base,
>>                                      ram_size - kernel_base, bswap_needed,
>> diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
>> index 4c5e9e4373..74028dc986 100644
>> --- a/hw/ppc/ppc440_bamboo.c
>> +++ b/hw/ppc/ppc440_bamboo.c
>> @@ -172,9 +172,6 @@ static void bamboo_init(MachineState *machine)
>>      PCIBus *pcibus;
>>      PowerPCCPU *cpu;
>>      CPUPPCState *env;
>> -    uint64_t elf_entry;
>> -    uint64_t elf_lowaddr;
>> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>>      target_long initrd_size = 0;
>>      DeviceState *dev;
>>      int success;
>> @@ -246,14 +243,14 @@ static void bamboo_init(MachineState *machine)
>>
>>      /* Load kernel. */
>>      if (kernel_filename) {
>> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>>          success = load_uimage(kernel_filename, &entry, &loadaddr, NULL,
>>                                NULL, NULL);
>>          if (success < 0) {
>> +            uint64_t elf_entry;
>>              success = load_elf(kernel_filename, NULL, NULL, NULL, &elf_entry,
>> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
>> -                               0, 0);
>> +                               NULL, NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
>>              entry = elf_entry;
>> -            loadaddr = elf_lowaddr;
>>          }
>>          /* XXX try again as binary */
>>          if (success < 0) {
>> diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
>> index 1a106a68de..71f74e983c 100644
>> --- a/hw/ppc/sam460ex.c
>> +++ b/hw/ppc/sam460ex.c
>> @@ -286,7 +286,6 @@ static void sam460ex_init(MachineState *machine)
>>      CPUPPCState *env;
>>      I2CBus *i2c;
>>      hwaddr entry = UBOOT_ENTRY;
>> -    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>>      target_long initrd_size = 0;
>>      DeviceState *dev;
>>      SysBusDevice *sbdev;
>> @@ -426,17 +425,16 @@ static void sam460ex_init(MachineState *machine)
>>
>>      /* Load kernel. */
>>      if (machine->kernel_filename) {
>> +        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
>>          success = load_uimage(machine->kernel_filename, &entry, &loadaddr,
>>                                NULL, NULL, NULL);
>>          if (success < 0) {
>> -            uint64_t elf_entry, elf_lowaddr;
>> +            uint64_t elf_entry;
>>
>> -            success = load_elf(machine->kernel_filename, NULL,
>> -                               NULL, NULL, &elf_entry,
>> -                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE, 0,
>> -                               0);
>> +            success = load_elf(machine->kernel_filename, NULL, NULL, NULL,
>> +                               &elf_entry, NULL, NULL, NULL,
>> +                               1, PPC_ELF_MACHINE, 0, 0);
>>              entry = elf_entry;
>> -            loadaddr = elf_lowaddr;
>>          }
>>          /* XXX try again as binary */
>>          if (success < 0) {
>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
>> index f6f034d039..f4e8e2e139 100644
>> --- a/hw/ppc/spapr.c
>> +++ b/hw/ppc/spapr.c
>> @@ -2972,18 +2972,15 @@ static void spapr_machine_init(MachineState *machine)
>>      }
>>
>>      if (kernel_filename) {
>> -        uint64_t lowaddr = 0;
>> -
>>          spapr->kernel_size = load_elf(kernel_filename, NULL,
>>                                        translate_kernel_address, spapr,
>> -                                      NULL, &lowaddr, NULL, NULL, 1,
>> +                                      NULL, NULL, NULL, NULL, 1,
>>                                        PPC_ELF_MACHINE, 0, 0);
>>          if (spapr->kernel_size == ELF_LOAD_WRONG_ENDIAN) {
>>              spapr->kernel_size = load_elf(kernel_filename, NULL,
>> -                                          translate_kernel_address, spapr, NULL,
>> -                                          &lowaddr, NULL, NULL, 0,
>> -                                          PPC_ELF_MACHINE,
>> -                                          0, 0);
>> +                                          translate_kernel_address, spapr,
>> +                                          NULL, NULL, NULL, NULL, 0,
>> +                                          PPC_ELF_MACHINE, 0, 0);
>>              spapr->kernel_le = spapr->kernel_size > 0;
>>          }
>>          if (spapr->kernel_size < 0) {
>> diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
>> index 78c4901be1..c790c1113f 100644
>> --- a/hw/ppc/virtex_ml507.c
>> +++ b/hw/ppc/virtex_ml507.c
>> @@ -250,12 +250,12 @@ static void virtex_init(MachineState *machine)
>>      sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
>>
>>      if (kernel_filename) {
>> -        uint64_t entry, low, high;
>> +        uint64_t entry, high;
>>          hwaddr boot_offset;
>>
>>          /* Boots a kernel elf binary.  */
>>          kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
>> -                               &entry, &low, &high, NULL, 1, PPC_ELF_MACHINE,
>> +                               &entry, NULL, &high, NULL, 1, PPC_ELF_MACHINE,
>>                                 0, 0);
>>          boot_info.bootstrap_pc = entry & 0x00ffffff;
>>
>> diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
>> index adb421b91b..ab8da252ee 100644
>> --- a/hw/riscv/boot.c
>> +++ b/hw/riscv/boot.c
>> @@ -85,10 +85,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>>                                   hwaddr firmware_load_addr,
>>                                   symbol_fn_t sym_cb)
>>  {
>> -    uint64_t firmware_entry, firmware_start, firmware_end;
>> +    uint64_t firmware_entry;
>>
>>      if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL,
>> -                         &firmware_entry, &firmware_start, &firmware_end, NULL,
>> +                         &firmware_entry, NULL, NULL, NULL,
>>                           0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>>          return firmware_entry;
>>      }
>> @@ -104,10 +104,10 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
>>
>>  target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb)
>>  {
>> -    uint64_t kernel_entry, kernel_high;
>> +    uint64_t kernel_entry;
>>
>>      if (load_elf_ram_sym(kernel_filename, NULL, NULL, NULL,
>> -                         &kernel_entry, NULL, &kernel_high, NULL, 0,
>> +                         &kernel_entry, NULL, NULL, NULL, 0,
>>                           EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
>>          return kernel_entry;
>>      }
>> diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c
>> index aeb46d86f5..cbac50db2d 100644
>> --- a/hw/xtensa/sim.c
>> +++ b/hw/xtensa/sim.c
>> @@ -106,9 +106,8 @@ void xtensa_sim_load_kernel(XtensaCPU *cpu, MachineState *machine)
>>
>>      if (kernel_filename) {
>>          uint64_t elf_entry;
>> -        uint64_t elf_lowaddr;
>>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
>> -                               &elf_entry, &elf_lowaddr, NULL, NULL, big_endian,
>> +                               &elf_entry, NULL, NULL, NULL, big_endian,
>>                                 EM_XTENSA, 0, 0);
>>
>>          if (success > 0) {
>> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
>> index 10de15855a..b1470b88e6 100644
>> --- a/hw/xtensa/xtfpga.c
>> +++ b/hw/xtensa/xtfpga.c
>> @@ -413,9 +413,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
>>          env->regs[2] = tagptr;
>>
>>          uint64_t elf_entry;
>> -        uint64_t elf_lowaddr;
>>          int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
>> -                &elf_entry, &elf_lowaddr, NULL, NULL, be, EM_XTENSA, 0, 0);
>> +                &elf_entry, NULL, NULL, NULL, be, EM_XTENSA, 0, 0);
>>          if (success > 0) {
>>              entry_point = elf_entry;
>>          } else {
>> --
>> 2.21.3
>>
>>
>
>
Max Filippov July 7, 2020, 7:17 p.m. UTC | #4
On Sun, Jul 5, 2020 at 10:40 AM BALATON Zoltan <balaton@eik.bme.hu> wrote:
>
> Several callers of load_elf() pass pointers for lowaddr and highaddr
> parameters which are then not used for anything. This may stem from a
> misunderstanding that load_elf need a value here but in fact it can
> take NULL to ignore these values. Remove such unused variables and
> pass NULL instead from callers that don't need these.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
[...]
>  hw/xtensa/sim.c        |  3 +--
>  hw/xtensa/xtfpga.c     |  3 +--

For Xtensa parts:
Acked-by: Max Filippov <jcmvbkbc@gmail.com>
diff mbox series

Patch

diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index f7751b18f6..4d24518d1d 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -62,8 +62,8 @@  static void clipper_init(MachineState *machine)
     qemu_irq rtc_irq;
     long size, i;
     char *palcode_filename;
-    uint64_t palcode_entry, palcode_low, palcode_high;
-    uint64_t kernel_entry, kernel_low, kernel_high;
+    uint64_t palcode_entry;
+    uint64_t kernel_entry, kernel_low;
     unsigned int smp_cpus = machine->smp.cpus;
 
     /* Create up to 4 cpus.  */
@@ -113,7 +113,7 @@  static void clipper_init(MachineState *machine)
         exit(1);
     }
     size = load_elf(palcode_filename, NULL, cpu_alpha_superpage_to_phys,
-                    NULL, &palcode_entry, &palcode_low, &palcode_high, NULL,
+                    NULL, &palcode_entry, NULL, NULL, NULL,
                     0, EM_ALPHA, 0, 0);
     if (size < 0) {
         error_report("could not load palcode '%s'", palcode_filename);
@@ -132,7 +132,7 @@  static void clipper_init(MachineState *machine)
         uint64_t param_offset;
 
         size = load_elf(kernel_filename, NULL, cpu_alpha_superpage_to_phys,
-                        NULL, &kernel_entry, &kernel_low, &kernel_high, NULL,
+                        NULL, &kernel_entry, &kernel_low, NULL, NULL,
                         0, EM_ALPHA, 0, 0);
         if (size < 0) {
             error_report("could not load kernel '%s'", kernel_filename);
diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
index 3308211e9c..92f859d760 100644
--- a/hw/arm/armv7m.c
+++ b/hw/arm/armv7m.c
@@ -309,7 +309,6 @@  void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
 {
     int image_size;
     uint64_t entry;
-    uint64_t lowaddr;
     int big_endian;
     AddressSpace *as;
     int asidx;
@@ -330,12 +329,11 @@  void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
 
     if (kernel_filename) {
         image_size = load_elf_as(kernel_filename, NULL, NULL, NULL,
-                                 &entry, &lowaddr, NULL,
+                                 &entry, NULL, NULL,
                                  NULL, big_endian, EM_ARM, 1, 0, as);
         if (image_size < 0) {
             image_size = load_image_targphys_as(kernel_filename, 0,
                                                 mem_size, as);
-            lowaddr = 0;
         }
         if (image_size < 0) {
             error_report("Could not load kernel '%s'", kernel_filename);
diff --git a/hw/cris/boot.c b/hw/cris/boot.c
index b8947bc660..aa8d2756d6 100644
--- a/hw/cris/boot.c
+++ b/hw/cris/boot.c
@@ -67,7 +67,7 @@  static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
 void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
 {
     CPUCRISState *env = &cpu->env;
-    uint64_t entry, high;
+    uint64_t entry;
     int kcmdline_len;
     int image_size;
 
@@ -76,7 +76,7 @@  void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)
        devboard SDK.  */
     image_size = load_elf(li->image_filename, NULL,
                           translate_kernel_address, NULL,
-                          &entry, NULL, &high, NULL, 0, EM_CRIS, 0, 0);
+                          &entry, NULL, NULL, NULL, 0, EM_CRIS, 0, 0);
     li->entry = entry;
     if (image_size < 0) {
         /* Takes a kimage from the axis devboard SDK.  */
diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
index 925e3f7c9d..8ad3c27f2c 100644
--- a/hw/microblaze/boot.c
+++ b/hw/microblaze/boot.c
@@ -135,7 +135,7 @@  void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
 
     if (kernel_filename) {
         int kernel_size;
-        uint64_t entry, low, high;
+        uint64_t entry, high;
         uint32_t base32;
         int big_endian = 0;
 
@@ -145,7 +145,7 @@  void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
 
         /* Boots a kernel elf binary.  */
         kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
-                               &entry, &low, &high, NULL,
+                               &entry, NULL, &high, NULL,
                                big_endian, EM_MICROBLAZE, 0, 0);
         base32 = entry;
         if (base32 == 0xc0000000) {
diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
index 8ca31e5162..507e549fca 100644
--- a/hw/mips/fuloong2e.c
+++ b/hw/mips/fuloong2e.c
@@ -107,7 +107,7 @@  static void GCC_FMT_ATTR(3, 4) prom_set(uint32_t *prom_buf, int index,
 
 static int64_t load_kernel(CPUMIPSState *env)
 {
-    int64_t kernel_entry, kernel_low, kernel_high, initrd_size;
+    int64_t kernel_entry, kernel_high, initrd_size;
     int index = 0;
     long kernel_size;
     ram_addr_t initrd_offset;
@@ -116,9 +116,9 @@  static int64_t load_kernel(CPUMIPSState *env)
 
     kernel_size = load_elf(loaderparams.kernel_filename, NULL,
                            cpu_mips_kseg0_to_phys, NULL,
-                           (uint64_t *)&kernel_entry,
-                           (uint64_t *)&kernel_low, (uint64_t *)&kernel_high,
-                           NULL, 0, EM_MIPS, 1, 0);
+                           (uint64_t *)&kernel_entry, NULL,
+                           (uint64_t *)&kernel_high, NULL,
+                           0, EM_MIPS, 1, 0);
     if (kernel_size < 0) {
         error_report("could not load kernel '%s': %s",
                      loaderparams.kernel_filename,
diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c
index 51a98287b5..a765e9f6be 100644
--- a/hw/moxie/moxiesim.c
+++ b/hw/moxie/moxiesim.c
@@ -52,13 +52,13 @@  typedef struct {
 
 static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)
 {
-    uint64_t entry, kernel_low, kernel_high;
+    uint64_t entry, kernel_high;
     int64_t initrd_size;
     long kernel_size;
     ram_addr_t initrd_offset;
 
     kernel_size = load_elf(loader_params->kernel_filename,  NULL, NULL, NULL,
-                           &entry, &kernel_low, &kernel_high, NULL, 1, EM_MOXIE,
+                           &entry, NULL, &kernel_high, NULL, 1, EM_MOXIE,
                            0, 0);
 
     if (kernel_size <= 0) {
diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c
index 88224aa84c..1df3b66c29 100644
--- a/hw/nios2/boot.c
+++ b/hw/nios2/boot.c
@@ -139,7 +139,7 @@  void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
 
     if (kernel_filename) {
         int kernel_size, fdt_size;
-        uint64_t entry, low, high;
+        uint64_t entry, high;
         int big_endian = 0;
 
 #ifdef TARGET_WORDS_BIGENDIAN
@@ -148,7 +148,7 @@  void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base,
 
         /* Boots a kernel elf binary. */
         kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
-                               &entry, &low, &high, NULL,
+                               &entry, NULL, &high, NULL,
                                big_endian, EM_ALTERA_NIOS2, 0, 0);
         if ((uint32_t)entry == 0xc0000000) {
             /*
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 828c5992ae..a3f25ab479 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -177,7 +177,6 @@  static void ppc_core99_init(MachineState *machine)
     }
 
     if (linux_boot) {
-        uint64_t lowaddr = 0;
         int bswap_needed;
 
 #ifdef BSWAP_NEEDED
@@ -188,9 +187,8 @@  static void ppc_core99_init(MachineState *machine)
         kernel_base = KERNEL_LOAD_ADDR;
 
         kernel_size = load_elf(kernel_filename, NULL,
-                               translate_kernel_address, NULL,
-                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
-                               0, 0);
+                               translate_kernel_address, NULL, NULL, NULL,
+                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
         if (kernel_size < 0)
             kernel_size = load_aout(kernel_filename, kernel_base,
                                     ram_size - kernel_base, bswap_needed,
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index f8c204ead7..4bcce22a96 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -150,7 +150,6 @@  static void ppc_heathrow_init(MachineState *machine)
     }
 
     if (linux_boot) {
-        uint64_t lowaddr = 0;
         int bswap_needed;
 
 #ifdef BSWAP_NEEDED
@@ -160,9 +159,8 @@  static void ppc_heathrow_init(MachineState *machine)
 #endif
         kernel_base = KERNEL_LOAD_ADDR;
         kernel_size = load_elf(kernel_filename, NULL,
-                               translate_kernel_address, NULL,
-                               NULL, &lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
-                               0, 0);
+                               translate_kernel_address, NULL, NULL, NULL,
+                               NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
         if (kernel_size < 0)
             kernel_size = load_aout(kernel_filename, kernel_base,
                                     ram_size - kernel_base, bswap_needed,
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 4c5e9e4373..74028dc986 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -172,9 +172,6 @@  static void bamboo_init(MachineState *machine)
     PCIBus *pcibus;
     PowerPCCPU *cpu;
     CPUPPCState *env;
-    uint64_t elf_entry;
-    uint64_t elf_lowaddr;
-    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
     target_long initrd_size = 0;
     DeviceState *dev;
     int success;
@@ -246,14 +243,14 @@  static void bamboo_init(MachineState *machine)
 
     /* Load kernel. */
     if (kernel_filename) {
+        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
         success = load_uimage(kernel_filename, &entry, &loadaddr, NULL,
                               NULL, NULL);
         if (success < 0) {
+            uint64_t elf_entry;
             success = load_elf(kernel_filename, NULL, NULL, NULL, &elf_entry,
-                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE,
-                               0, 0);
+                               NULL, NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0);
             entry = elf_entry;
-            loadaddr = elf_lowaddr;
         }
         /* XXX try again as binary */
         if (success < 0) {
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 1a106a68de..71f74e983c 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -286,7 +286,6 @@  static void sam460ex_init(MachineState *machine)
     CPUPPCState *env;
     I2CBus *i2c;
     hwaddr entry = UBOOT_ENTRY;
-    hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
     target_long initrd_size = 0;
     DeviceState *dev;
     SysBusDevice *sbdev;
@@ -426,17 +425,16 @@  static void sam460ex_init(MachineState *machine)
 
     /* Load kernel. */
     if (machine->kernel_filename) {
+        hwaddr loadaddr = LOAD_UIMAGE_LOADADDR_INVALID;
         success = load_uimage(machine->kernel_filename, &entry, &loadaddr,
                               NULL, NULL, NULL);
         if (success < 0) {
-            uint64_t elf_entry, elf_lowaddr;
+            uint64_t elf_entry;
 
-            success = load_elf(machine->kernel_filename, NULL,
-                               NULL, NULL, &elf_entry,
-                               &elf_lowaddr, NULL, NULL, 1, PPC_ELF_MACHINE, 0,
-                               0);
+            success = load_elf(machine->kernel_filename, NULL, NULL, NULL,
+                               &elf_entry, NULL, NULL, NULL,
+                               1, PPC_ELF_MACHINE, 0, 0);
             entry = elf_entry;
-            loadaddr = elf_lowaddr;
         }
         /* XXX try again as binary */
         if (success < 0) {
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f6f034d039..f4e8e2e139 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2972,18 +2972,15 @@  static void spapr_machine_init(MachineState *machine)
     }
 
     if (kernel_filename) {
-        uint64_t lowaddr = 0;
-
         spapr->kernel_size = load_elf(kernel_filename, NULL,
                                       translate_kernel_address, spapr,
-                                      NULL, &lowaddr, NULL, NULL, 1,
+                                      NULL, NULL, NULL, NULL, 1,
                                       PPC_ELF_MACHINE, 0, 0);
         if (spapr->kernel_size == ELF_LOAD_WRONG_ENDIAN) {
             spapr->kernel_size = load_elf(kernel_filename, NULL,
-                                          translate_kernel_address, spapr, NULL,
-                                          &lowaddr, NULL, NULL, 0,
-                                          PPC_ELF_MACHINE,
-                                          0, 0);
+                                          translate_kernel_address, spapr,
+                                          NULL, NULL, NULL, NULL, 0,
+                                          PPC_ELF_MACHINE, 0, 0);
             spapr->kernel_le = spapr->kernel_size > 0;
         }
         if (spapr->kernel_size < 0) {
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 78c4901be1..c790c1113f 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -250,12 +250,12 @@  static void virtex_init(MachineState *machine)
     sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
 
     if (kernel_filename) {
-        uint64_t entry, low, high;
+        uint64_t entry, high;
         hwaddr boot_offset;
 
         /* Boots a kernel elf binary.  */
         kernel_size = load_elf(kernel_filename, NULL, NULL, NULL,
-                               &entry, &low, &high, NULL, 1, PPC_ELF_MACHINE,
+                               &entry, NULL, &high, NULL, 1, PPC_ELF_MACHINE,
                                0, 0);
         boot_info.bootstrap_pc = entry & 0x00ffffff;
 
diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
index adb421b91b..ab8da252ee 100644
--- a/hw/riscv/boot.c
+++ b/hw/riscv/boot.c
@@ -85,10 +85,10 @@  target_ulong riscv_load_firmware(const char *firmware_filename,
                                  hwaddr firmware_load_addr,
                                  symbol_fn_t sym_cb)
 {
-    uint64_t firmware_entry, firmware_start, firmware_end;
+    uint64_t firmware_entry;
 
     if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL,
-                         &firmware_entry, &firmware_start, &firmware_end, NULL,
+                         &firmware_entry, NULL, NULL, NULL,
                          0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
         return firmware_entry;
     }
@@ -104,10 +104,10 @@  target_ulong riscv_load_firmware(const char *firmware_filename,
 
 target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb)
 {
-    uint64_t kernel_entry, kernel_high;
+    uint64_t kernel_entry;
 
     if (load_elf_ram_sym(kernel_filename, NULL, NULL, NULL,
-                         &kernel_entry, NULL, &kernel_high, NULL, 0,
+                         &kernel_entry, NULL, NULL, NULL, 0,
                          EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
         return kernel_entry;
     }
diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c
index aeb46d86f5..cbac50db2d 100644
--- a/hw/xtensa/sim.c
+++ b/hw/xtensa/sim.c
@@ -106,9 +106,8 @@  void xtensa_sim_load_kernel(XtensaCPU *cpu, MachineState *machine)
 
     if (kernel_filename) {
         uint64_t elf_entry;
-        uint64_t elf_lowaddr;
         int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
-                               &elf_entry, &elf_lowaddr, NULL, NULL, big_endian,
+                               &elf_entry, NULL, NULL, NULL, big_endian,
                                EM_XTENSA, 0, 0);
 
         if (success > 0) {
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index 10de15855a..b1470b88e6 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -413,9 +413,8 @@  static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
         env->regs[2] = tagptr;
 
         uint64_t elf_entry;
-        uint64_t elf_lowaddr;
         int success = load_elf(kernel_filename, NULL, translate_phys_addr, cpu,
-                &elf_entry, &elf_lowaddr, NULL, NULL, be, EM_XTENSA, 0, 0);
+                &elf_entry, NULL, NULL, NULL, be, EM_XTENSA, 0, 0);
         if (success > 0) {
             entry_point = elf_entry;
         } else {