On 03/06/2018 05:43 PM, Michael Clark wrote:
> When load_elf is called with NULL as an argument to the
> address translate callback, it does an identity translation.
> This commit removes the redundant identity_translate callback.
>
> Signed-off-by: Michael Clark
> Signed-off-by: Palmer Dabbelt
Reviewed-by: Philippe Mathieu-Daudé
> ---
> hw/riscv/sifive_e.c | 7 +--
> hw/riscv/sifive_u.c | 7 +--
> hw/riscv/spike.c| 7 +--
> hw/riscv/virt.c | 7 +--
> 4 files changed, 4 insertions(+), 24 deletions(-)
>
> diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
> index 19eca36..09c9d49 100644
> --- a/hw/riscv/sifive_e.c
> +++ b/hw/riscv/sifive_e.c
> @@ -82,16 +82,11 @@ static void copy_le32_to_phys(hwaddr pa, uint32_t *rom,
> size_t len)
> }
> }
>
> -static uint64_t identity_translate(void *opaque, uint64_t addr)
> -{
> -return addr;
> -}
> -
> static uint64_t load_kernel(const char *kernel_filename)
> {
> uint64_t kernel_entry, kernel_high;
>
> -if (load_elf(kernel_filename, identity_translate, NULL,
> +if (load_elf(kernel_filename, NULL, NULL,
> _entry, NULL, _high,
> 0, ELF_MACHINE, 1, 0) < 0) {
> error_report("qemu: could not load kernel '%s'", kernel_filename);
> diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c
> index f3f7615..6116c38 100644
> --- a/hw/riscv/sifive_u.c
> +++ b/hw/riscv/sifive_u.c
> @@ -68,16 +68,11 @@ static void copy_le32_to_phys(hwaddr pa, uint32_t *rom,
> size_t len)
> }
> }
>
> -static uint64_t identity_translate(void *opaque, uint64_t addr)
> -{
> -return addr;
> -}
> -
> static uint64_t load_kernel(const char *kernel_filename)
> {
> uint64_t kernel_entry, kernel_high;
>
> -if (load_elf(kernel_filename, identity_translate, NULL,
> +if (load_elf(kernel_filename, NULL, NULL,
> _entry, NULL, _high,
> 0, ELF_MACHINE, 1, 0) < 0) {
> error_report("qemu: could not load kernel '%s'", kernel_filename);
> diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
> index 4c233ec..7710333 100644
> --- a/hw/riscv/spike.c
> +++ b/hw/riscv/spike.c
> @@ -59,16 +59,11 @@ static void copy_le32_to_phys(hwaddr pa, uint32_t *rom,
> size_t len)
> }
> }
>
> -static uint64_t identity_translate(void *opaque, uint64_t addr)
> -{
> -return addr;
> -}
> -
> static uint64_t load_kernel(const char *kernel_filename)
> {
> uint64_t kernel_entry, kernel_high;
>
> -if (load_elf_ram_sym(kernel_filename, identity_translate, NULL,
> +if (load_elf_ram_sym(kernel_filename, NULL, NULL,
> _entry, NULL, _high, 0, ELF_MACHINE, 1, 0,
> NULL, true, htif_symbol_callback) < 0) {
> error_report("qemu: could not load kernel '%s'", kernel_filename);
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index 0d101fc..f8c19b4 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -62,16 +62,11 @@ static void copy_le32_to_phys(hwaddr pa, uint32_t *rom,
> size_t len)
> }
> }
>
> -static uint64_t identity_translate(void *opaque, uint64_t addr)
> -{
> -return addr;
> -}
> -
> static uint64_t load_kernel(const char *kernel_filename)
> {
> uint64_t kernel_entry, kernel_high;
>
> -if (load_elf(kernel_filename, identity_translate, NULL,
> +if (load_elf(kernel_filename, NULL, NULL,
> _entry, NULL, _high,
> 0, ELF_MACHINE, 1, 0) < 0) {
> error_report("qemu: could not load kernel '%s'", kernel_filename);
>