Message ID | 159707852916.1489912.8376334685349668124.stgit@bahia.lan (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ppc/spapr: Error handling fixes and cleanups | expand |
On Mon, Aug 10, 2020 at 06:55:29PM +0200, Greg Kurz wrote: > Now that kvmppc_xive_cpu_get_state() returns negative on error, use that > and get rid of the temporary Error object and error_propagate(). > > Signed-off-by: Greg Kurz <groug@kaod.org> Applied to ppc-for-5.2. > --- > hw/intc/spapr_xive_kvm.c | 14 ++++++-------- > include/hw/ppc/xive.h | 2 +- > 2 files changed, 7 insertions(+), 9 deletions(-) > > diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c > index e9a36115bed6..d871bb1a0016 100644 > --- a/hw/intc/spapr_xive_kvm.c > +++ b/hw/intc/spapr_xive_kvm.c > @@ -119,7 +119,8 @@ int kvmppc_xive_cpu_get_state(XiveTCTX *tctx, Error **errp) > > typedef struct { > XiveTCTX *tctx; > - Error *err; > + Error **errp; > + int ret; > } XiveCpuGetState; > > static void kvmppc_xive_cpu_do_synchronize_state(CPUState *cpu, > @@ -127,14 +128,14 @@ static void kvmppc_xive_cpu_do_synchronize_state(CPUState *cpu, > { > XiveCpuGetState *s = arg.host_ptr; > > - kvmppc_xive_cpu_get_state(s->tctx, &s->err); > + s->ret = kvmppc_xive_cpu_get_state(s->tctx, s->errp); > } > > -void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) > +int kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) > { > XiveCpuGetState s = { > .tctx = tctx, > - .err = NULL, > + .errp = errp, > }; > > /* > @@ -143,10 +144,7 @@ void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) > run_on_cpu(tctx->cs, kvmppc_xive_cpu_do_synchronize_state, > RUN_ON_CPU_HOST_PTR(&s)); > > - if (s.err) { > - error_propagate(errp, s.err); > - return; > - } > + return s.ret; > } > > int kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **errp) > diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h > index 785c905357dc..2c42ae92d287 100644 > --- a/include/hw/ppc/xive.h > +++ b/include/hw/ppc/xive.h > @@ -488,7 +488,7 @@ void xive_tctx_ipb_update(XiveTCTX *tctx, uint8_t ring, uint8_t ipb); > int kvmppc_xive_source_reset_one(XiveSource *xsrc, int srcno, Error **errp); > void kvmppc_xive_source_set_irq(void *opaque, int srcno, int val); > int kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **errp); > -void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp); > +int kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp); > int kvmppc_xive_cpu_get_state(XiveTCTX *tctx, Error **errp); > int kvmppc_xive_cpu_set_state(XiveTCTX *tctx, Error **errp); > > >
diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c index e9a36115bed6..d871bb1a0016 100644 --- a/hw/intc/spapr_xive_kvm.c +++ b/hw/intc/spapr_xive_kvm.c @@ -119,7 +119,8 @@ int kvmppc_xive_cpu_get_state(XiveTCTX *tctx, Error **errp) typedef struct { XiveTCTX *tctx; - Error *err; + Error **errp; + int ret; } XiveCpuGetState; static void kvmppc_xive_cpu_do_synchronize_state(CPUState *cpu, @@ -127,14 +128,14 @@ static void kvmppc_xive_cpu_do_synchronize_state(CPUState *cpu, { XiveCpuGetState *s = arg.host_ptr; - kvmppc_xive_cpu_get_state(s->tctx, &s->err); + s->ret = kvmppc_xive_cpu_get_state(s->tctx, s->errp); } -void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) +int kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) { XiveCpuGetState s = { .tctx = tctx, - .err = NULL, + .errp = errp, }; /* @@ -143,10 +144,7 @@ void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp) run_on_cpu(tctx->cs, kvmppc_xive_cpu_do_synchronize_state, RUN_ON_CPU_HOST_PTR(&s)); - if (s.err) { - error_propagate(errp, s.err); - return; - } + return s.ret; } int kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **errp) diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h index 785c905357dc..2c42ae92d287 100644 --- a/include/hw/ppc/xive.h +++ b/include/hw/ppc/xive.h @@ -488,7 +488,7 @@ void xive_tctx_ipb_update(XiveTCTX *tctx, uint8_t ring, uint8_t ipb); int kvmppc_xive_source_reset_one(XiveSource *xsrc, int srcno, Error **errp); void kvmppc_xive_source_set_irq(void *opaque, int srcno, int val); int kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **errp); -void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp); +int kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, Error **errp); int kvmppc_xive_cpu_get_state(XiveTCTX *tctx, Error **errp); int kvmppc_xive_cpu_set_state(XiveTCTX *tctx, Error **errp);
Now that kvmppc_xive_cpu_get_state() returns negative on error, use that and get rid of the temporary Error object and error_propagate(). Signed-off-by: Greg Kurz <groug@kaod.org> --- hw/intc/spapr_xive_kvm.c | 14 ++++++-------- include/hw/ppc/xive.h | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-)