On Tue, 17 Mar 2020 15:50:40 -0400 Peter Xu <pet...@redhat.com> wrote:
> So that kvm_irqchip_assign_irqfd() can have access to the > EventNotifiers, especially the resample event. It is needed in follow > up patch to cache and kick resamplefds from QEMU. > > Reviewed-by: Eric Auger <eric.au...@redhat.com> > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > accel/kvm/kvm-all.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) Reviewed-by: Alex Williamson <alex.william...@redhat.com> > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c > index 439a4efe52..d49b74512a 100644 > --- a/accel/kvm/kvm-all.c > +++ b/accel/kvm/kvm-all.c > @@ -1628,9 +1628,13 @@ int kvm_irqchip_update_msi_route(KVMState *s, int > virq, MSIMessage msg, > return kvm_update_routing_entry(s, &kroute); > } > > -static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int rfd, int virq, > +static int kvm_irqchip_assign_irqfd(KVMState *s, EventNotifier *event, > + EventNotifier *resample, int virq, > bool assign) > { > + int fd = event_notifier_get_fd(event); > + int rfd = resample ? event_notifier_get_fd(resample) : -1; > + > struct kvm_irqfd irqfd = { > .fd = fd, > .gsi = virq, > @@ -1735,7 +1739,9 @@ int kvm_irqchip_add_hv_sint_route(KVMState *s, uint32_t > vcpu, uint32_t sint) > return -ENOSYS; > } > > -static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool > assign) > +static int kvm_irqchip_assign_irqfd(KVMState *s, EventNotifier *event, > + EventNotifier *resample, int virq, > + bool assign) > { > abort(); > } > @@ -1749,15 +1755,13 @@ int kvm_irqchip_update_msi_route(KVMState *s, int > virq, MSIMessage msg) > int kvm_irqchip_add_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, > EventNotifier *rn, int virq) > { > - return kvm_irqchip_assign_irqfd(s, event_notifier_get_fd(n), > - rn ? event_notifier_get_fd(rn) : -1, virq, true); > + return kvm_irqchip_assign_irqfd(s, n, rn, virq, true); > } > > int kvm_irqchip_remove_irqfd_notifier_gsi(KVMState *s, EventNotifier *n, > int virq) > { > - return kvm_irqchip_assign_irqfd(s, event_notifier_get_fd(n), -1, virq, > - false); > + return kvm_irqchip_assign_irqfd(s, n, NULL, virq, false); > } > > int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n,