On 21/11/2019 01:56, David Gibson wrote: > pseries machine type can have one of two different interrupt controllers in > use depending on feature negotiation with the guest. Usually this is > invisible to devices, because they route to a common set of qemu_irqs which > in turn dispatch to the correct back end. > > VFIO passthrough devices, however, wire themselves up directly to the KVM > irqchip for performance, which means they are affected by this change in > interrupt controller. To get them to adjust correctly for the change in > irqchip, we need to fire the kvm irqchip change notifier. > > Cc: Alex Williamson <alex.williamson@xxxxxxxxxx> > Cc: Alexey Kardashevskiy <aik@xxxxxxxxx> > > Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Reviewed-by: Cédric Le Goater <clg@xxxxxxxx> > --- > hw/ppc/spapr_irq.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c > index 168044be85..1d27034962 100644 > --- a/hw/ppc/spapr_irq.c > +++ b/hw/ppc/spapr_irq.c > @@ -508,6 +508,12 @@ static void set_active_intc(SpaprMachineState *spapr, > } > > spapr->active_intc = new_intc; > + > + /* > + * We've changed the kernel irqchip, let VFIO devices know they > + * need to readjust. > + */ > + kvm_irqchip_change_notify(); > } > > void spapr_irq_update_active_intc(SpaprMachineState *spapr) >