[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 12/39] pseries: Clean up error handling of spapr_cpu_
From: |
David Gibson |
Subject: |
[Qemu-devel] [PULL 12/39] pseries: Clean up error handling of spapr_cpu_init() |
Date: |
Fri, 29 Jan 2016 16:06:44 +1100 |
Currently spapr_cpu_init() is hardcoded to handle any errors as fatal.
That works for now, since it's only called from initial setup where an
error here means we really can't proceed.
However, we'll want to handle this more flexibly for cpu hotplug in future
so generalize this using the error reporting infrastructure. While we're
at it make a small cleanup in a related part of ppc_spapr_init() to use
error_report() instead of an old-style explicit fprintf().
Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Bharata B Rao <address@hidden>
Reviewed-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
---
hw/ppc/spapr.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 672815f..447fa5d 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1624,7 +1624,8 @@ static void spapr_boot_set(void *opaque, const char
*boot_device,
machine->boot_order = g_strdup(boot_device);
}
-static void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu)
+static void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu,
+ Error **errp)
{
CPUPPCState *env = &cpu->env;
@@ -1642,7 +1643,13 @@ static void spapr_cpu_init(sPAPRMachineState *spapr,
PowerPCCPU *cpu)
}
if (cpu->max_compat) {
- ppc_set_compat(cpu, cpu->max_compat, &error_fatal);
+ Error *local_err = NULL;
+
+ ppc_set_compat(cpu, cpu->max_compat, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
}
xics_cpu_setup(spapr->icp, cpu);
@@ -1811,10 +1818,10 @@ static void ppc_spapr_init(MachineState *machine)
for (i = 0; i < smp_cpus; i++) {
cpu = cpu_ppc_init(machine->cpu_model);
if (cpu == NULL) {
- fprintf(stderr, "Unable to find PowerPC CPU definition\n");
+ error_report("Unable to find PowerPC CPU definition");
exit(1);
}
- spapr_cpu_init(spapr, cpu);
+ spapr_cpu_init(spapr, cpu, &error_fatal);
}
if (kvm_enabled()) {
--
2.5.0
- [Qemu-devel] [PULL 00/39] ppc-for-2.6 queue 20160129, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 00/39] ppc-for-2.6 queue 20160129, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 05/39] mac_dbdma: add DBDMA controller state to VMStateDescription, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 04/39] macio: add dma_active to VMStateDescription, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 01/39] target-ppc: Use sensible POWER8/POWER8E versions, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 12/39] pseries: Clean up error handling of spapr_cpu_init(),
David Gibson <=
- [Qemu-devel] [PULL 14/39] pseries: Clean up error handling in spapr_vga_init(), David Gibson, 2016/01/29
- [Qemu-devel] [PULL 23/39] target-ppc: gdbstub: fix altivec registers for little-endian guests, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 26/39] pseries: Allow TCG h_enter to work with hotplugged memory, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 11/39] ppc: Clean up error handling in ppc_set_compat(), David Gibson, 2016/01/29
- [Qemu-devel] [PULL 17/39] pseries: Clean up error reporting in ppc_spapr_init(), David Gibson, 2016/01/29
- [Qemu-devel] [PULL 33/39] target-ppc: Use actual page size encodings from HPTE, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 34/39] target-ppc: Remove unused mmu models from ppc_tlb_invalidate_one, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 06/39] cuda: add missing fields to VMStateDescription, David Gibson, 2016/01/29
- [Qemu-devel] [PULL 15/39] pseries: Clean up error handling in spapr_rtas_register(), David Gibson, 2016/01/29
- [Qemu-devel] [PULL 10/39] spapr: Don't create ibm, dynamic-reconfiguration-memory w/o DR LMBs, David Gibson, 2016/01/29