From 5fe555384c2b4e0edd9a11f55c4953b09b196637 Mon Sep 17 00:00:00 2001 From: Clement Leger Date: Fri, 12 Jun 2020 09:10:36 +0200 Subject: mips: lib: bootm: use bootm elf loading capabilities Now that the elf file is loaded by the bootm core, there is no need for elf pointer anymore. Thus all elf related fields can be removed and bootm_load_os can be used. Signed-off-by: Clement Leger Tested-by: Oleksij Rempel Signed-off-by: Sascha Hauer --- arch/mips/lib/bootm.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'arch/mips') diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c index 8e16994b62..6c56202ea9 100644 --- a/arch/mips/lib/bootm.c +++ b/arch/mips/lib/bootm.c @@ -46,41 +46,35 @@ static struct binfmt_hook binfmt_barebox_hook = { static int do_bootm_elf(struct image_data *data) { void (*entry)(int, void *); - struct elf_image *elf; void *fdt; int ret = 0; - elf = elf_open(data->os_file); - if (IS_ERR(elf)) - return PTR_ERR(elf); - - ret = elf_load(elf); + ret = bootm_load_os(data, data->os_address); if (ret) - goto bootm_elf_done; + return ret; fdt = bootm_get_devicetree(data); if (IS_ERR(fdt)) { ret = PTR_ERR(fdt); - goto bootm_elf_done; + goto bootm_free_fdt; } pr_info("Starting application at 0x%08lx, dts 0x%08lx...\n", - phys_to_virt(elf->entry), data->of_root_node); + phys_to_virt(data->os_address), data->of_root_node); if (data->dryrun) - goto bootm_elf_done; + goto bootm_free_fdt; shutdown_barebox(); - entry = (void *) (unsigned long) elf->entry; + entry = (void *) (unsigned long) data->os_address; entry(-2, phys_to_virt((unsigned long)fdt)); pr_err("ELF application terminated\n"); ret = -EINVAL; -bootm_elf_done: - elf_close(elf); +bootm_free_fdt: free(fdt); return ret; -- cgit v1.2.3