diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/acpi.c | 9 | ||||
-rw-r--r-- | hw/i386/pc.c | 8 | ||||
-rw-r--r-- | hw/pc.h | 2 |
3 files changed, 9 insertions, 10 deletions
@@ -229,7 +229,7 @@ static void acpi_table_install(const char unsigned *blob, size_t bloblen, ACPI_TABLE_PFX_SIZE, acpi_payload_size); } -int acpi_table_add(const QemuOpts *opts) +void acpi_table_add(const QemuOpts *opts, Error **errp) { AcpiTableOptions *hdrs = NULL; Error *err = NULL; @@ -306,12 +306,7 @@ out: qapi_dealloc_visitor_cleanup(dv); } - if (err) { - fprintf(stderr, "%s\n", error_get_pretty(err)); - error_free(err); - return -1; - } - return 0; + error_propagate(errp, err); } static void acpi_notify_wakeup(Notifier *notifier, void *data) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index d1bc0deb28..2e915ecd68 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -891,6 +891,7 @@ void pc_acpi_init(const char *default_dsdt) { char *filename = NULL, *arg = NULL; QemuOpts *opts; + Error *err = NULL; if (acpi_tables != NULL) { /* manually set via -acpitable, leave it alone */ @@ -909,8 +910,11 @@ void pc_acpi_init(const char *default_dsdt) opts = qemu_opts_parse(qemu_find_opts("acpi"), arg, 0); g_assert(opts != NULL); - if (acpi_table_add(opts) != 0) { - fprintf(stderr, "WARNING: failed to load %s\n", filename); + acpi_table_add(opts, &err); + if (err) { + fprintf(stderr, "WARNING: failed to load %s: %s\n", filename, + error_get_pretty(err)); + error_free(err); } g_free(arg); g_free(filename); @@ -113,7 +113,7 @@ extern char unsigned *acpi_tables; extern size_t acpi_tables_len; void acpi_bios_init(void); -int acpi_table_add(const QemuOpts *opts); +void acpi_table_add(const QemuOpts *opts, Error **errp); /* acpi_piix.c */ |