/Linux-v4.19/virt/kvm/ |
D | eventfd.c | 50 struct kvm_kernel_irqfd *irqfd = in irqfd_inject() local 52 struct kvm *kvm = irqfd->kvm; in irqfd_inject() 54 if (!irqfd->resampler) { in irqfd_inject() 55 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject() 57 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject() 61 irqfd->gsi, 1, false); in irqfd_inject() 74 struct kvm_kernel_irqfd *irqfd; in irqfd_resampler_ack() local 86 list_for_each_entry_rcu(irqfd, &resampler->list, resampler_link) in irqfd_resampler_ack() 87 eventfd_signal(irqfd->resamplefd, 1); in irqfd_resampler_ack() 93 irqfd_resampler_shutdown(struct kvm_kernel_irqfd *irqfd) in irqfd_resampler_shutdown() argument [all …]
|
/Linux-v4.19/drivers/vfio/ |
D | virqfd.c | 112 struct fd irqfd; in vfio_virqfd_enable() local 131 irqfd = fdget(fd); in vfio_virqfd_enable() 132 if (!irqfd.file) { in vfio_virqfd_enable() 137 ctx = eventfd_ctx_fileget(irqfd.file); in vfio_virqfd_enable() 169 events = vfs_poll(irqfd.file, &virqfd->pt); in vfio_virqfd_enable() 184 fdput(irqfd); in vfio_virqfd_enable() 190 fdput(irqfd); in vfio_virqfd_enable()
|
/Linux-v4.19/virt/kvm/arm/ |
D | arm.c | 1599 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 1602 return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_add_producer() 1603 &irqfd->irq_entry); in kvm_arch_irq_bypass_add_producer() 1608 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 1611 kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_del_producer() 1612 &irqfd->irq_entry); in kvm_arch_irq_bypass_del_producer() 1617 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_stop() local 1620 kvm_arm_halt_guest(irqfd->kvm); in kvm_arch_irq_bypass_stop() 1625 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_start() local 1628 kvm_arm_resume_guest(irqfd->kvm); in kvm_arch_irq_bypass_start()
|
/Linux-v4.19/arch/arm/kvm/ |
D | Makefile | 32 obj-y += $(KVM)/arm/vgic/vgic-irqfd.o
|
/Linux-v4.19/arch/arm64/kvm/ |
D | Makefile | 27 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-irqfd.o
|
/Linux-v4.19/arch/powerpc/kvm/ |
D | book3s_hv.c | 4264 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_add_producer_hv() local 4267 irqfd->producer = prod; in kvmppc_irq_bypass_add_producer_hv() 4269 ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_add_producer_hv() 4272 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_add_producer_hv() 4281 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_del_producer_hv() local 4284 irqfd->producer = NULL; in kvmppc_irq_bypass_del_producer_hv() 4291 ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_del_producer_hv() 4294 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_del_producer_hv()
|
D | powerpc.c | 819 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 821 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer() 832 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 834 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
|
/Linux-v4.19/arch/x86/kvm/ |
D | x86.c | 9532 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 9535 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer() 9537 return kvm_x86_ops->update_pi_irte(irqfd->kvm, in kvm_arch_irq_bypass_add_producer() 9538 prod->irq, irqfd->gsi, 1); in kvm_arch_irq_bypass_add_producer() 9545 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 9548 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer() 9549 irqfd->producer = NULL; in kvm_arch_irq_bypass_del_producer() 9557 ret = kvm_x86_ops->update_pi_irte(irqfd->kvm, prod->irq, irqfd->gsi, 0); in kvm_arch_irq_bypass_del_producer() 9560 " fails: %d\n", irqfd->consumer.token, ret); in kvm_arch_irq_bypass_del_producer()
|
/Linux-v4.19/Documentation/virtual/kvm/ |
D | api.txt | 2320 the guest using the specified gsi pin. The irqfd is removed using 2325 mechanism allowing emulation of level-triggered, irqfd-based 2334 irqfd. The KVM_IRQFD_FLAG_RESAMPLE is only necessary on assignment
|