On Mon, 6 Jan 2020 17:32:07 +0100 Cédric Le Goater <c...@kaod.org> wrote:
> spapr_match_nvt() is a XIVE operation and it used by the machine to ... and it "is" used by the machine... > look for a matching target when an event notification is being > delivered. An assert checks that spapr_match_nvt() is called only when > the machine has selected the XIVE interrupt mode but it is redundant > with the XIVE_PRESENTER() dynamic cast. > > Apply the cast to spapr->active_intc and remove the assert. > > Signed-off-by: Cédric Le Goater <c...@kaod.org> > --- Reviewed-by: Greg Kurz <gr...@kaod.org> > hw/ppc/spapr.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index e62c89b3dd40..5008b7563173 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -4198,19 +4198,19 @@ static void > spapr_pic_print_info(InterruptStatsProvider *obj, > kvm_irqchip_in_kernel() ? "in-kernel" : "emulated"); > } > > +/* > + * This is a XIVE only operation > + */ > static int spapr_match_nvt(XiveFabric *xfb, uint8_t format, > uint8_t nvt_blk, uint32_t nvt_idx, > bool cam_ignore, uint8_t priority, > uint32_t logic_serv, XiveTCTXMatch *match) > { > SpaprMachineState *spapr = SPAPR_MACHINE(xfb); > - XivePresenter *xptr = XIVE_PRESENTER(spapr->xive); > + XivePresenter *xptr = XIVE_PRESENTER(spapr->active_intc); > XivePresenterClass *xpc = XIVE_PRESENTER_GET_CLASS(xptr); > int count; > > - /* This is a XIVE only operation */ > - assert(spapr->active_intc == SPAPR_INTC(spapr->xive)); > - > count = xpc->match_nvt(xptr, format, nvt_blk, nvt_idx, cam_ignore, > priority, logic_serv, match); > if (count < 0) {