/linux/drivers/virt/acrn/ |
A D | irqfd.c | 47 irqfd->msi.msi_data); in acrn_irqfd_inject() 58 eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); in hsm_irqfd_shutdown() 60 kfree(irqfd); in hsm_irqfd_shutdown() 65 struct hsm_irqfd *irqfd; in hsm_irqfd_shutdown_work() local 69 vm = irqfd->vm; in hsm_irqfd_shutdown_work() 81 struct hsm_irqfd *irqfd; in hsm_irqfd_wakeup() local 85 vm = irqfd->vm; in hsm_irqfd_wakeup() 119 irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL); in acrn_irqfd_assign() 120 if (!irqfd) in acrn_irqfd_assign() 123 irqfd->vm = vm; in acrn_irqfd_assign() [all …]
|
A D | hsm.c | 120 struct acrn_irqfd irqfd; in acrn_dev_ioctl() local 402 if (copy_from_user(&irqfd, (void __user *)ioctl_param, in acrn_dev_ioctl() 403 sizeof(irqfd))) in acrn_dev_ioctl() 405 ret = acrn_irqfd_config(vm, &irqfd); in acrn_dev_ioctl()
|
A D | Makefile | 3 acrn-y := hsm.o vm.o mm.o ioreq.o ioeventfd.o irqfd.o
|
/linux/virt/kvm/ |
A D | eventfd.c | 48 if (!irqfd->resampler) { in irqfd_inject() 126 eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); in irqfd_shutdown() 146 kfree(irqfd); in irqfd_shutdown() 309 irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL_ACCOUNT); in kvm_irqfd_assign() 310 if (!irqfd) in kvm_irqfd_assign() 313 irqfd->kvm = kvm; in kvm_irqfd_assign() 377 list_add_rcu(&irqfd->resampler_link, &irqfd->resampler->list); in kvm_irqfd_assign() 420 irqfd->consumer.token = (void *)irqfd->eventfd; in kvm_irqfd_assign() 454 kfree(irqfd); in kvm_irqfd_assign() 551 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) { in kvm_irqfd_deassign() [all …]
|
/linux/drivers/vfio/ |
A 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/arch/arm64/kvm/ |
A D | arm.c | 2056 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 2059 return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_add_producer() 2060 &irqfd->irq_entry); in kvm_arch_irq_bypass_add_producer() 2065 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 2068 kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_del_producer() 2069 &irqfd->irq_entry); in kvm_arch_irq_bypass_del_producer() 2074 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_stop() local 2077 kvm_arm_halt_guest(irqfd->kvm); in kvm_arch_irq_bypass_stop() 2082 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_start() local 2085 kvm_arm_resume_guest(irqfd->kvm); in kvm_arch_irq_bypass_start()
|
A D | Makefile | 21 vgic/vgic-irqfd.o vgic/vgic-v2.o \
|
A D | built-in.a | 30 vgic/vgic-irqfd.o/
|
A D | .built-in.a.cmd | 1 …/kvm/vgic/vgic.o arch/arm64/kvm/vgic/vgic-init.o arch/arm64/kvm/vgic/vgic-irqfd.o arch/arm64/kvm/v…
|
/linux/arch/arm64/kvm/vgic/ |
A D | .vgic-irqfd.o.cmd | 1 …irqfd.o := /usr/bin/ccache /home/test/workspace/code/optee_3.16/build/../toolchains/aarch64/bin/aa… 3 source_arch/arm64/kvm/vgic/vgic-irqfd.o := arch/arm64/kvm/vgic/vgic-irqfd.c 5 deps_arch/arm64/kvm/vgic/vgic-irqfd.o := \ 1281 arch/arm64/kvm/vgic/vgic-irqfd.o: $(deps_arch/arm64/kvm/vgic/vgic-irqfd.o) 1283 $(deps_arch/arm64/kvm/vgic/vgic-irqfd.o):
|
/linux/arch/arm64/ |
A D | built-in.a | 118 kvm/vgic/vgic-irqfd.o/
|
/linux/arch/powerpc/kvm/ |
A D | book3s_hv.c | 5564 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_add_producer_hv() local 5567 irqfd->producer = prod; in kvmppc_irq_bypass_add_producer_hv() 5569 ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_add_producer_hv() 5572 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_add_producer_hv() 5581 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_del_producer_hv() local 5584 irqfd->producer = NULL; in kvmppc_irq_bypass_del_producer_hv() 5591 ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_del_producer_hv() 5594 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_del_producer_hv()
|
A D | powerpc.c | 848 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 850 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer() 861 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 863 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
|
/linux/arch/x86/kvm/ |
A D | x86.c | 12203 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 12207 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer() 12208 kvm_arch_start_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer() 12210 prod->irq, irqfd->gsi, 1); in kvm_arch_irq_bypass_add_producer() 12213 kvm_arch_end_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer() 12222 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 12225 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer() 12226 irqfd->producer = NULL; in kvm_arch_irq_bypass_del_producer() 12234 ret = static_call(kvm_x86_update_pi_irte)(irqfd->kvm, prod->irq, irqfd->gsi, 0); in kvm_arch_irq_bypass_del_producer() 12237 " fails: %d\n", irqfd->consumer.token, ret); in kvm_arch_irq_bypass_del_producer() [all …]
|
/linux/Documentation/virt/kvm/ |
A D | api.rst | 3022 the guest using the specified gsi pin. The irqfd is removed using 3027 mechanism allowing emulation of level-triggered, irqfd-based 3036 irqfd. The KVM_IRQFD_FLAG_RESAMPLE is only necessary on assignment
|