mirror of https://github.com/xemu-project/xemu.git
spapr/xive: Fix error handling in kvmppc_xive_post_load()
Now that all these functions return a negative errno on failure, check that because it is preferred to local_err. And most of all, propagate it because vmstate expects negative errnos. Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <159707850148.1489912.18355118622296682631.stgit@bahia.lan> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
42a92d925d
commit
a845a54cbe
|
@ -631,6 +631,7 @@ int kvmppc_xive_post_load(SpaprXive *xive, int version_id)
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
CPUState *cs;
|
CPUState *cs;
|
||||||
int i;
|
int i;
|
||||||
|
int ret;
|
||||||
|
|
||||||
/* The KVM XIVE device should be in use */
|
/* The KVM XIVE device should be in use */
|
||||||
assert(xive->fd != -1);
|
assert(xive->fd != -1);
|
||||||
|
@ -641,11 +642,10 @@ int kvmppc_xive_post_load(SpaprXive *xive, int version_id)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
kvmppc_xive_set_queue_config(xive, SPAPR_XIVE_BLOCK_ID, i,
|
ret = kvmppc_xive_set_queue_config(xive, SPAPR_XIVE_BLOCK_ID, i,
|
||||||
&xive->endt[i], &local_err);
|
&xive->endt[i], &local_err);
|
||||||
if (local_err) {
|
if (ret < 0) {
|
||||||
error_report_err(local_err);
|
goto fail;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -660,16 +660,14 @@ int kvmppc_xive_post_load(SpaprXive *xive, int version_id)
|
||||||
* previously set in KVM. Since we don't do that for all interrupts
|
* previously set in KVM. Since we don't do that for all interrupts
|
||||||
* at reset time anymore, let's do it now.
|
* at reset time anymore, let's do it now.
|
||||||
*/
|
*/
|
||||||
kvmppc_xive_source_reset_one(&xive->source, i, &local_err);
|
ret = kvmppc_xive_source_reset_one(&xive->source, i, &local_err);
|
||||||
if (local_err) {
|
if (ret < 0) {
|
||||||
error_report_err(local_err);
|
goto fail;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kvmppc_xive_set_source_config(xive, i, &xive->eat[i], &local_err);
|
ret = kvmppc_xive_set_source_config(xive, i, &xive->eat[i], &local_err);
|
||||||
if (local_err) {
|
if (ret < 0) {
|
||||||
error_report_err(local_err);
|
goto fail;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -686,15 +684,18 @@ int kvmppc_xive_post_load(SpaprXive *xive, int version_id)
|
||||||
CPU_FOREACH(cs) {
|
CPU_FOREACH(cs) {
|
||||||
PowerPCCPU *cpu = POWERPC_CPU(cs);
|
PowerPCCPU *cpu = POWERPC_CPU(cs);
|
||||||
|
|
||||||
kvmppc_xive_cpu_set_state(spapr_cpu_state(cpu)->tctx, &local_err);
|
ret = kvmppc_xive_cpu_set_state(spapr_cpu_state(cpu)->tctx, &local_err);
|
||||||
if (local_err) {
|
if (ret < 0) {
|
||||||
error_report_err(local_err);
|
goto fail;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The source states will be restored when the machine starts running */
|
/* The source states will be restored when the machine starts running */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
error_report_err(local_err);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns MAP_FAILED on error and sets errno */
|
/* Returns MAP_FAILED on error and sets errno */
|
||||||
|
|
Loading…
Reference in New Issue