[U-Boot] [PATCH 03/12] cmd: qfw: remove qemu_fwcfg_free_files()
Bin Meng
bmeng.cn at gmail.com
Fri May 13 16:00:05 CEST 2016
Hi Miao,
On Fri, May 13, 2016 at 2:29 PM, Miao Yan <yanmiaobest at gmail.com> wrote:
> This patch is part of the qfw refactor work.
>
> The qemu_fwcfg_free_files() function is only used in error handling in
> ACPI table generation, let's not make this a core function and move it
> to the right place.
>
But I suspect this API may still be needed in some other scenarioes?
eg: for future ARM64 ACPI?
> Signed-off-by: Miao Yan <yanmiaobest at gmail.com>
> ---
> arch/x86/cpu/qemu/acpi_table.c | 13 +++++++++++--
> cmd/qemu_fw_cfg.c | 12 ------------
> include/qemu_fw_cfg.h | 1 -
> 3 files changed, 11 insertions(+), 15 deletions(-)
>
> diff --git a/arch/x86/cpu/qemu/acpi_table.c b/arch/x86/cpu/qemu/acpi_table.c
> index 49381ac..b17fa03 100644
> --- a/arch/x86/cpu/qemu/acpi_table.c
> +++ b/arch/x86/cpu/qemu/acpi_table.c
> @@ -235,8 +235,17 @@ u32 write_acpi_tables(u32 addr)
> }
>
> out:
> - if (ret)
> - qemu_fwcfg_free_files();
> + if (ret) {
> + struct fw_cfg_file_iter iter;
> + for (file = qemu_fwcfg_file_iter_init(&iter);
> + !qemu_fwcfg_file_iter_end(&iter);
> + file = qemu_fwcfg_file_iter_next(&iter)) {
> + if (file->addr) {
> + free((void *)file->addr);
> + file->addr = 0;
> + }
> + }
> + }
>
> free(table_loader);
> return addr;
> diff --git a/cmd/qemu_fw_cfg.c b/cmd/qemu_fw_cfg.c
> index 192b7d1..9f03ab6 100644
> --- a/cmd/qemu_fw_cfg.c
> +++ b/cmd/qemu_fw_cfg.c
> @@ -217,18 +217,6 @@ struct fw_file *qemu_fwcfg_find_file(const char *name)
> return NULL;
> }
>
> -void qemu_fwcfg_free_files(void)
> -{
> - struct fw_file *file;
> - struct list_head *list;
> -
> - list_for_each(list, &fw_list) {
> - file = list_entry(list, struct fw_file, list);
> - if (file->addr)
> - free((void *)file->addr);
> - }
> -}
> -
> struct fw_file *qemu_fwcfg_file_iter_init(struct fw_cfg_file_iter *iter)
> {
> iter->entry = fw_list.next;
> diff --git a/include/qemu_fw_cfg.h b/include/qemu_fw_cfg.h
> index 19d0ba0..986f4b2 100644
> --- a/include/qemu_fw_cfg.h
> +++ b/include/qemu_fw_cfg.h
> @@ -154,7 +154,6 @@ void qemu_fwcfg_init(void);
> void qemu_fwcfg_read_entry(uint16_t entry, uint32_t length, void *address);
> int qemu_fwcfg_read_firmware_list(void);
> struct fw_file *qemu_fwcfg_find_file(const char *name);
> -void qemu_fwcfg_free_files(void);
>
> /**
> * Get system cpu number
> --
Regards,
Bin
More information about the U-Boot
mailing list