spapr/xive: Rework error handling in kvmppc_xive_get_queues()

Since kvmppc_xive_get_queue_config() has a return value, convert
kvmppc_xive_get_queues() to use it for error checking. This allows
to get rid of the local_err boiler plate.

Propagate the return value so that callers may use it as well to check
failures.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <159707848069.1489912.14879208798696134531.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Greg Kurz 2020-08-10 18:54:40 +02:00 committed by David Gibson
parent f9a548edf2
commit d53482a73b

View File

@ -467,23 +467,24 @@ void kvmppc_xive_reset(SpaprXive *xive, Error **errp)
NULL, true, errp); NULL, true, errp);
} }
static void kvmppc_xive_get_queues(SpaprXive *xive, Error **errp) static int kvmppc_xive_get_queues(SpaprXive *xive, Error **errp)
{ {
Error *local_err = NULL;
int i; int i;
int ret;
for (i = 0; i < xive->nr_ends; i++) { for (i = 0; i < xive->nr_ends; i++) {
if (!xive_end_is_valid(&xive->endt[i])) { if (!xive_end_is_valid(&xive->endt[i])) {
continue; continue;
} }
kvmppc_xive_get_queue_config(xive, SPAPR_XIVE_BLOCK_ID, i, ret = kvmppc_xive_get_queue_config(xive, SPAPR_XIVE_BLOCK_ID, i,
&xive->endt[i], &local_err); &xive->endt[i], errp);
if (local_err) { if (ret < 0) {
error_propagate(errp, local_err); return ret;
return;
} }
} }
return 0;
} }
/* /*