pseries: Clean up error handling in xics_system_init()
Use the error handling infrastructure to pass an error out from try_create_xics() instead of assuming &error_abort - the caller is in a better position to decide on error handling policy. Also change the error handling from an &error_abort to &error_fatal, since this occurs during the initial machine construction and could be triggered by bad configuration rather than a program error. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
adf9ac50db
commit
1e49182d05
@ -112,7 +112,7 @@ static XICSState *try_create_xics(const char *type, int nr_servers,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static XICSState *xics_system_init(MachineState *machine,
|
static XICSState *xics_system_init(MachineState *machine,
|
||||||
int nr_servers, int nr_irqs)
|
int nr_servers, int nr_irqs, Error **errp)
|
||||||
{
|
{
|
||||||
XICSState *icp = NULL;
|
XICSState *icp = NULL;
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ static XICSState *xics_system_init(MachineState *machine,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!icp) {
|
if (!icp) {
|
||||||
icp = try_create_xics(TYPE_XICS, nr_servers, nr_irqs, &error_abort);
|
icp = try_create_xics(TYPE_XICS, nr_servers, nr_irqs, errp);
|
||||||
}
|
}
|
||||||
|
|
||||||
return icp;
|
return icp;
|
||||||
@ -1813,7 +1813,7 @@ static void ppc_spapr_init(MachineState *machine)
|
|||||||
spapr->icp = xics_system_init(machine,
|
spapr->icp = xics_system_init(machine,
|
||||||
DIV_ROUND_UP(max_cpus * kvmppc_smt_threads(),
|
DIV_ROUND_UP(max_cpus * kvmppc_smt_threads(),
|
||||||
smp_threads),
|
smp_threads),
|
||||||
XICS_IRQS);
|
XICS_IRQS, &error_fatal);
|
||||||
|
|
||||||
if (smc->dr_lmb_enabled) {
|
if (smc->dr_lmb_enabled) {
|
||||||
spapr_validate_node_memory(machine, &error_fatal);
|
spapr_validate_node_memory(machine, &error_fatal);
|
||||||
|
Loading…
Reference in New Issue
Block a user