summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiao Yan <yanmiaobest@gmail.com>2016-05-22 19:37:12 -0700
committerBin Meng <bmeng.cn@gmail.com>2016-05-23 15:18:00 +0800
commit05dd6f183c8c20f0176a67ac885f8143c0052203 (patch)
treef255cfee5d732140687928767db4888b28a7f70d
parent099b2196e4a693968fd6205ac6d61f6eaab79fb1 (diff)
downloadblackbird-obmc-uboot-05dd6f183c8c20f0176a67ac885f8143c0052203.tar.gz
blackbird-obmc-uboot-05dd6f183c8c20f0176a67ac885f8143c0052203.zip
cmd: qfw: remove qemu_fwcfg_free_files()
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. Signed-off-by: Miao Yan <yanmiaobest@gmail.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r--arch/x86/cpu/qemu/acpi_table.c13
-rw-r--r--cmd/qemu_fw_cfg.c12
-rw-r--r--include/qemu_fw_cfg.h1
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 49381acd29..b17fa03bc8 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 192b7d18d8..9f03ab60ab 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 19d0ba08b4..986f4b2e5a 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
OpenPOWER on IntegriCloud