summaryrefslogtreecommitdiffstats
path: root/arch/x86/cpu/qemu/acpi_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/cpu/qemu/acpi_table.c')
-rw-r--r--arch/x86/cpu/qemu/acpi_table.c13
1 files changed, 11 insertions, 2 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;
OpenPOWER on IntegriCloud