Message ID | 20200226225457.217014-1-peterx@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio/pci: Fix up breakage against split irqchip and INTx | expand |
Hi Peter, On 2/26/20 11:54 PM, Peter Xu 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. > > Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Thanks Eric > --- > accel/kvm/kvm-all.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > 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, >
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,
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. Signed-off-by: Peter Xu <peterx@redhat.com> --- accel/kvm/kvm-all.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)