All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-05 17:22 ` BALATON Zoltan
  0 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-07-05 17:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Sagar Karandikar, Anthony Green, Mark Cave-Ayland,
	Max Filippov, Alistair Francis, Huacai Chen, Edgar E. Iglesias,
	Marek Vasut, Aleksandar Markovic, Palmer Dabbelt,
	Richard Henderson, philmd, Aleksandar Rikalo, qemu-arm,
	David Gibson, qemu-riscv, Bastian Koppelmann, Chris Wulff,
	qemu-ppc, Aurelien Jarno

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(-)

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



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-05 17:22 ` BALATON Zoltan
  0 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-07-05 17:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Peter Maydell, Edgar E. Iglesias, Huacai Chen,
	philmd, Aleksandar Markovic, Jiaxun Yang, Aurelien Jarno,
	Aleksandar Rikalo, Anthony Green, Chris Wulff, Marek Vasut,
	Mark Cave-Ayland, David Gibson, Palmer Dabbelt, Alistair Francis,
	Sagar Karandikar, Bastian Koppelmann, Max Filippov, qemu-arm,
	qemu-ppc, qemu-riscv

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(-)

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



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-07-05 17:22 ` BALATON Zoltan
@ 2020-07-06  3:54   ` David Gibson
  -1 siblings, 0 replies; 16+ messages in thread
From: David Gibson @ 2020-07-06  3:54 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: Peter Maydell, Sagar Karandikar, Anthony Green, Mark Cave-Ayland,
	qemu-devel, Max Filippov, Alistair Francis, Huacai Chen,
	Edgar E. Iglesias, Marek Vasut, Aleksandar Markovic,
	Palmer Dabbelt, philmd, Aleksandar Rikalo, qemu-arm,
	Richard Henderson, qemu-riscv, Bastian Koppelmann, Chris Wulff,
	qemu-ppc, Aurelien Jarno

[-- Attachment #1: Type: text/plain, Size: 18904 bytes --]

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 {

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-06  3:54   ` David Gibson
  0 siblings, 0 replies; 16+ messages in thread
From: David Gibson @ 2020-07-06  3:54 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: qemu-devel, Richard Henderson, Peter Maydell, Edgar E. Iglesias,
	Huacai Chen, philmd, Aleksandar Markovic, Jiaxun Yang,
	Aurelien Jarno, Aleksandar Rikalo, Anthony Green, Chris Wulff,
	Marek Vasut, Mark Cave-Ayland, Palmer Dabbelt, Alistair Francis,
	Sagar Karandikar, Bastian Koppelmann, Max Filippov, qemu-arm,
	qemu-ppc, qemu-riscv

[-- Attachment #1: Type: text/plain, Size: 18904 bytes --]

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 {

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-07-05 17:22 ` BALATON Zoltan
@ 2020-07-07 16:00   ` Alistair Francis
  -1 siblings, 0 replies; 16+ messages in thread
From: Alistair Francis @ 2020-07-07 16:00 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: Peter Maydell, Sagar Karandikar, Anthony Green, Mark Cave-Ayland,
	qemu-devel@nongnu.org Developers, Max Filippov, Alistair Francis,
	Huacai Chen, Edgar E. Iglesias, Marek Vasut, Aleksandar Markovic,
	Palmer Dabbelt, Richard Henderson, Philippe Mathieu-Daudé,
	Aleksandar Rikalo, qemu-arm, David Gibson, open list:RISC-V,
	Bastian Koppelmann, Chris Wulff, open list:New World,
	Aurelien Jarno

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
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-07 16:00   ` Alistair Francis
  0 siblings, 0 replies; 16+ messages in thread
From: Alistair Francis @ 2020-07-07 16:00 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: qemu-devel@nongnu.org Developers, Peter Maydell,
	Sagar Karandikar, Anthony Green, Mark Cave-Ayland, Max Filippov,
	Alistair Francis, Huacai Chen, Edgar E. Iglesias, Marek Vasut,
	Aleksandar Markovic, Palmer Dabbelt, Richard Henderson,
	Philippe Mathieu-Daudé,
	Aleksandar Rikalo, qemu-arm, David Gibson, open list:RISC-V,
	Bastian Koppelmann, Chris Wulff, open list:New World,
	Aurelien Jarno

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
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-07-07 16:00   ` Alistair Francis
@ 2020-07-07 18:54     ` BALATON Zoltan
  -1 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-07-07 18:54 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Marek Vasut, open list:New World, Aleksandar Rikalo,
	open list:RISC-V, Sagar Karandikar, Bastian Koppelmann,
	Anthony Green, Chris Wulff, qemu-devel@nongnu.org Developers,
	Max Filippov, Aleksandar Markovic, qemu-arm, Alistair Francis,
	Huacai Chen, Alistair Francis, David Gibson,
	Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, Richard Henderson

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
>>
>>
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-07 18:54     ` BALATON Zoltan
  0 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-07-07 18:54 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Alistair Francis, Sagar Karandikar, Anthony Green,
	qemu-devel@nongnu.org Developers, Max Filippov, Alistair Francis,
	Huacai Chen, Marek Vasut, Aleksandar Markovic, Palmer Dabbelt,
	Richard Henderson, Philippe Mathieu-Daudé,
	Aleksandar Rikalo, qemu-arm, David Gibson, open list:RISC-V,
	Bastian Koppelmann, Chris Wulff, open list:New World,
	Aurelien Jarno

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
>>
>>
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-07-05 17:22 ` BALATON Zoltan
@ 2020-07-07 19:17   ` Max Filippov
  -1 siblings, 0 replies; 16+ messages in thread
From: Max Filippov @ 2020-07-07 19:17 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: Peter Maydell, Sagar Karandikar, Anthony Green, Mark Cave-Ayland,
	qemu-devel, Alistair Francis, Huacai Chen, Edgar E. Iglesias,
	Marek Vasut, Aleksandar Markovic, Palmer Dabbelt,
	Richard Henderson, Philippe Mathieu-Daudé,
	Aleksandar Rikalo, qemu-arm, David Gibson, qemu-riscv,
	Bastian Koppelmann, Chris Wulff, qemu-ppc, Aurelien Jarno

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>

-- 
Thanks.
-- Max


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-07-07 19:17   ` Max Filippov
  0 siblings, 0 replies; 16+ messages in thread
From: Max Filippov @ 2020-07-07 19:17 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: qemu-devel, Richard Henderson, Peter Maydell, Edgar E. Iglesias,
	Huacai Chen, Philippe Mathieu-Daudé,
	Aleksandar Markovic, Jiaxun Yang, Aurelien Jarno,
	Aleksandar Rikalo, Anthony Green, Chris Wulff, Marek Vasut,
	Mark Cave-Ayland, David Gibson, Palmer Dabbelt, Alistair Francis,
	Sagar Karandikar, Bastian Koppelmann, qemu-arm, qemu-ppc,
	qemu-riscv

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>

-- 
Thanks.
-- Max


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-07-07 18:54     ` BALATON Zoltan
@ 2020-09-23 21:15       ` BALATON Zoltan
  -1 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan via @ 2020-09-23 21:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Marek Vasut, Aleksandar Rikalo, open list:RISC-V,
	Sagar Karandikar, Bastian Koppelmann, Anthony Green, Chris Wulff,
	qemu-devel@nongnu.org Developers, Alistair Francis, Max Filippov,
	Aleksandar Markovic, qemu-arm, open list:New World, Huacai Chen,
	Alistair Francis, Richard Henderson, Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, David Gibson

On Tue, 7 Jul 2020, BALATON Zoltan wrote:
> 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?

Ping? Could someone please queue this patch? It still seems to apply 
cleanly.

Regards,
BALATON Zoltan

>>> ---
>>>  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
>>> 
>>> 
>> 
>> 
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-09-23 21:15       ` BALATON Zoltan
  0 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-09-23 21:15 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Marek Vasut, open list:New World, Aleksandar Rikalo,
	open list:RISC-V, Sagar Karandikar, Bastian Koppelmann,
	Anthony Green, Chris Wulff, qemu-devel@nongnu.org Developers,
	Max Filippov, Aleksandar Markovic, qemu-arm, Alistair Francis,
	Huacai Chen, Alistair Francis, David Gibson,
	Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, Richard Henderson

On Tue, 7 Jul 2020, BALATON Zoltan wrote:
> 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?

Ping? Could someone please queue this patch? It still seems to apply 
cleanly.

Regards,
BALATON Zoltan

>>> ---
>>>  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
>>> 
>>> 
>> 
>> 
>
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-09-23 21:15       ` BALATON Zoltan
@ 2020-09-23 21:17         ` BALATON Zoltan
  -1 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan via @ 2020-09-23 21:17 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Marek Vasut, Aleksandar Rikalo, open list:RISC-V,
	Sagar Karandikar, Bastian Koppelmann, Anthony Green, Chris Wulff,
	qemu-devel@nongnu.org Developers, Alistair Francis, Max Filippov,
	Aleksandar Markovic, qemu-arm, open list:New World, Huacai Chen,
	Alistair Francis, Richard Henderson, Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, David Gibson

On Wed, 23 Sep 2020, BALATON Zoltan wrote:
> On Tue, 7 Jul 2020, BALATON Zoltan wrote:
>> 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?
>
> Ping? Could someone please queue this patch? It still seems to apply cleanly.

Forgot to include the link to the original patch:

http://patchwork.ozlabs.org/project/qemu-devel/patch/20200705174020.BDD0174633F@zero.eik.bme.hu/

> Regards,
> BALATON Zoltan
>
>>>> ---
>>>>  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
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-09-23 21:17         ` BALATON Zoltan
  0 siblings, 0 replies; 16+ messages in thread
From: BALATON Zoltan @ 2020-09-23 21:17 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Marek Vasut, open list:New World, Aleksandar Rikalo,
	open list:RISC-V, Sagar Karandikar, Bastian Koppelmann,
	Anthony Green, Chris Wulff, qemu-devel@nongnu.org Developers,
	Max Filippov, Aleksandar Markovic, qemu-arm, Alistair Francis,
	Huacai Chen, Alistair Francis, David Gibson,
	Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, Richard Henderson

On Wed, 23 Sep 2020, BALATON Zoltan wrote:
> On Tue, 7 Jul 2020, BALATON Zoltan wrote:
>> 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?
>
> Ping? Could someone please queue this patch? It still seems to apply cleanly.

Forgot to include the link to the original patch:

http://patchwork.ozlabs.org/project/qemu-devel/patch/20200705174020.BDD0174633F@zero.eik.bme.hu/

> Regards,
> BALATON Zoltan
>
>>>> ---
>>>>  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
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
  2020-09-23 21:15       ` BALATON Zoltan
@ 2020-09-25 23:53         ` Alistair Francis
  -1 siblings, 0 replies; 16+ messages in thread
From: Alistair Francis @ 2020-09-25 23:53 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: Marek Vasut, Peter Maydell, Aleksandar Rikalo, open list:RISC-V,
	Sagar Karandikar, Bastian Koppelmann, Anthony Green, Chris Wulff,
	qemu-devel@nongnu.org Developers, Max Filippov,
	Aleksandar Markovic, qemu-arm, open list:New World, Huacai Chen,
	Alistair Francis, Richard Henderson, Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, David Gibson

On Wed, Sep 23, 2020 at 2:15 PM BALATON Zoltan <balaton@eik.bme.hu> wrote:
>
> On Tue, 7 Jul 2020, BALATON Zoltan wrote:
> > 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?
>
> Ping? Could someone please queue this patch? It still seems to apply
> cleanly.

I've got to send a register API PR, I'll add this one to it unless
someone else wants to take it.

Alistair

>
> Regards,
> BALATON Zoltan
>
> >>> ---
> >>>  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
> >>>
> >>>
> >>
> >>
> >
> >


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] load_elf: Remove unused address variables from callers
@ 2020-09-25 23:53         ` Alistair Francis
  0 siblings, 0 replies; 16+ messages in thread
From: Alistair Francis @ 2020-09-25 23:53 UTC (permalink / raw)
  To: BALATON Zoltan
  Cc: Peter Maydell, Marek Vasut, open list:New World,
	Aleksandar Rikalo, open list:RISC-V, Sagar Karandikar,
	Bastian Koppelmann, Anthony Green, Chris Wulff,
	qemu-devel@nongnu.org Developers, Max Filippov,
	Aleksandar Markovic, qemu-arm, Alistair Francis, Huacai Chen,
	David Gibson, Philippe Mathieu-Daudé,
	Palmer Dabbelt, Aurelien Jarno, Richard Henderson

On Wed, Sep 23, 2020 at 2:15 PM BALATON Zoltan <balaton@eik.bme.hu> wrote:
>
> On Tue, 7 Jul 2020, BALATON Zoltan wrote:
> > 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?
>
> Ping? Could someone please queue this patch? It still seems to apply
> cleanly.

I've got to send a register API PR, I'll add this one to it unless
someone else wants to take it.

Alistair

>
> Regards,
> BALATON Zoltan
>
> >>> ---
> >>>  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
> >>>
> >>>
> >>
> >>
> >
> >


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-09-26  0:06 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-05 17:22 [PATCH] load_elf: Remove unused address variables from callers BALATON Zoltan
2020-07-05 17:22 ` BALATON Zoltan
2020-07-06  3:54 ` David Gibson
2020-07-06  3:54   ` David Gibson
2020-07-07 16:00 ` Alistair Francis
2020-07-07 16:00   ` Alistair Francis
2020-07-07 18:54   ` BALATON Zoltan
2020-07-07 18:54     ` BALATON Zoltan
2020-09-23 21:15     ` BALATON Zoltan via
2020-09-23 21:15       ` BALATON Zoltan
2020-09-23 21:17       ` BALATON Zoltan via
2020-09-23 21:17         ` BALATON Zoltan
2020-09-25 23:53       ` Alistair Francis
2020-09-25 23:53         ` Alistair Francis
2020-07-07 19:17 ` Max Filippov
2020-07-07 19:17   ` Max Filippov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.