Home
last modified time | relevance | path

Searched refs:irqfd (Results 1 - 20 of 20) sorted by relevance

/kernel/linux/linux-6.6/drivers/virt/acrn/
H A Dirqfd.c3 * ACRN HSM irqfd: use eventfd objects to inject virtual interrupts
22 * struct hsm_irqfd - Properties of HSM irqfd
41 static void acrn_irqfd_inject(struct hsm_irqfd *irqfd) in acrn_irqfd_inject() argument
43 struct acrn_vm *vm = irqfd->vm; in acrn_irqfd_inject()
45 acrn_msi_inject(vm, irqfd->msi.msi_addr, in acrn_irqfd_inject()
46 irqfd->msi.msi_data); in acrn_irqfd_inject()
49 static void hsm_irqfd_shutdown(struct hsm_irqfd *irqfd) in hsm_irqfd_shutdown() argument
53 lockdep_assert_held(&irqfd->vm->irqfds_lock); in hsm_irqfd_shutdown()
56 list_del_init(&irqfd->list); in hsm_irqfd_shutdown()
57 eventfd_ctx_remove_wait_queue(irqfd in hsm_irqfd_shutdown()
64 struct hsm_irqfd *irqfd; hsm_irqfd_shutdown_work() local
80 struct hsm_irqfd *irqfd; hsm_irqfd_wakeup() local
99 struct hsm_irqfd *irqfd; hsm_irqfd_poll_func() local
113 struct hsm_irqfd *irqfd, *tmp; acrn_irqfd_assign() local
180 struct hsm_irqfd *irqfd, *tmp; acrn_irqfd_deassign() local
226 struct hsm_irqfd *irqfd, *next; acrn_irqfd_deinit() local
[all...]
H A DMakefile3 acrn-y := hsm.o vm.o mm.o ioreq.o ioeventfd.o irqfd.o
H A Dhsm.c120 struct acrn_irqfd irqfd; in acrn_dev_ioctl() local
412 if (copy_from_user(&irqfd, (void __user *)ioctl_param, in acrn_dev_ioctl()
413 sizeof(irqfd))) in acrn_dev_ioctl()
415 ret = acrn_irqfd_config(vm, &irqfd); in acrn_dev_ioctl()
/kernel/linux/linux-6.6/virt/kvm/
H A Deventfd.c44 struct kvm_kernel_irqfd *irqfd = in irqfd_inject() local
46 struct kvm *kvm = irqfd->kvm; in irqfd_inject()
48 if (!irqfd->resampler) { in irqfd_inject()
49 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject()
51 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject()
55 irqfd->gsi, 1, false); in irqfd_inject()
60 struct kvm_kernel_irqfd *irqfd; in irqfd_resampler_notify() local
62 list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, in irqfd_resampler_notify()
64 eventfd_signal(irqfd->resamplefd, 1); in irqfd_resampler_notify()
92 irqfd_resampler_shutdown(struct kvm_kernel_irqfd *irqfd) in irqfd_resampler_shutdown() argument
123 struct kvm_kernel_irqfd *irqfd = irqfd_shutdown() local
161 irqfd_is_active(struct kvm_kernel_irqfd *irqfd) irqfd_is_active() argument
172 irqfd_deactivate(struct kvm_kernel_irqfd *irqfd) irqfd_deactivate() argument
196 struct kvm_kernel_irqfd *irqfd = irqfd_wakeup() local
251 struct kvm_kernel_irqfd *irqfd = irqfd_ptable_queue_proc() local
257 irqfd_update(struct kvm *kvm, struct kvm_kernel_irqfd *irqfd) irqfd_update() argument
305 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_assign() local
550 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_deassign() local
606 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_release() local
629 struct kvm_kernel_irqfd *irqfd; kvm_irq_routing_update() local
[all...]
/kernel/linux/linux-5.10/virt/kvm/
H A Deventfd.c44 struct kvm_kernel_irqfd *irqfd = in irqfd_inject() local
46 struct kvm *kvm = irqfd->kvm; in irqfd_inject()
48 if (!irqfd->resampler) { in irqfd_inject()
49 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject()
51 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject()
55 irqfd->gsi, 1, false); in irqfd_inject()
68 struct kvm_kernel_irqfd *irqfd; in irqfd_resampler_ack() local
80 list_for_each_entry_rcu(irqfd, &resampler->list, resampler_link) in irqfd_resampler_ack()
81 eventfd_signal(irqfd->resamplefd, 1); in irqfd_resampler_ack()
87 irqfd_resampler_shutdown(struct kvm_kernel_irqfd *irqfd) in irqfd_resampler_shutdown() argument
114 struct kvm_kernel_irqfd *irqfd = irqfd_shutdown() local
152 irqfd_is_active(struct kvm_kernel_irqfd *irqfd) irqfd_is_active() argument
163 irqfd_deactivate(struct kvm_kernel_irqfd *irqfd) irqfd_deactivate() argument
187 struct kvm_kernel_irqfd *irqfd = irqfd_wakeup() local
237 struct kvm_kernel_irqfd *irqfd = irqfd_ptable_queue_proc() local
243 irqfd_update(struct kvm *kvm, struct kvm_kernel_irqfd *irqfd) irqfd_update() argument
284 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_assign() local
529 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_deassign() local
585 struct kvm_kernel_irqfd *irqfd, *tmp; kvm_irqfd_release() local
608 struct kvm_kernel_irqfd *irqfd; kvm_irq_routing_update() local
[all...]
/kernel/linux/linux-5.10/drivers/vfio/
H A Dvirqfd.c26 create_singlethread_workqueue("vfio-irqfd-cleanup"); in vfio_virqfd_init()
109 struct fd irqfd; in vfio_virqfd_enable() local
128 irqfd = fdget(fd); in vfio_virqfd_enable()
129 if (!irqfd.file) { in vfio_virqfd_enable()
134 ctx = eventfd_ctx_fileget(irqfd.file); in vfio_virqfd_enable()
166 events = vfs_poll(irqfd.file, &virqfd->pt); in vfio_virqfd_enable()
178 * Do not drop the file until the irqfd is fully initialized, in vfio_virqfd_enable()
181 fdput(irqfd); in vfio_virqfd_enable()
187 fdput(irqfd); in vfio_virqfd_enable()
/kernel/linux/linux-6.6/drivers/vfio/
H A Dvirqfd.c23 create_singlethread_workqueue("vfio-irqfd-cleanup"); in vfio_virqfd_init()
109 struct fd irqfd; in vfio_virqfd_enable() local
128 irqfd = fdget(fd); in vfio_virqfd_enable()
129 if (!irqfd.file) { in vfio_virqfd_enable()
134 ctx = eventfd_ctx_fileget(irqfd.file); in vfio_virqfd_enable()
166 events = vfs_poll(irqfd.file, &virqfd->pt); in vfio_virqfd_enable()
178 * Do not drop the file until the irqfd is fully initialized, in vfio_virqfd_enable()
181 fdput(irqfd); in vfio_virqfd_enable()
187 fdput(irqfd); in vfio_virqfd_enable()
/kernel/linux/linux-6.6/drivers/xen/
H A Dprivcmd.c925 static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd) in privcmd_irqfd_assign() argument
933 kirqfd = kzalloc(sizeof(*kirqfd) + irqfd->size, GFP_KERNEL); in privcmd_irqfd_assign()
938 if (copy_from_user(dm_op, u64_to_user_ptr(irqfd->dm_op), irqfd->size)) { in privcmd_irqfd_assign()
943 kirqfd->xbufs.size = irqfd->size; in privcmd_irqfd_assign()
945 kirqfd->dom = irqfd->dom; in privcmd_irqfd_assign()
948 f = fdget(irqfd->fd); in privcmd_irqfd_assign()
1006 static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd) in privcmd_irqfd_deassign() argument
1011 eventfd = eventfd_ctx_fdget(irqfd->fd); in privcmd_irqfd_deassign()
1041 struct privcmd_irqfd irqfd; in privcmd_ioctl_irqfd() local
[all...]
/kernel/linux/linux-5.10/arch/arm64/kvm/
H A Darm.c1720 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
1723 return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_add_producer()
1724 &irqfd->irq_entry); in kvm_arch_irq_bypass_add_producer()
1729 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
1732 kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_del_producer()
1733 &irqfd->irq_entry); in kvm_arch_irq_bypass_del_producer()
1738 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_stop() local
1741 kvm_arm_halt_guest(irqfd->kvm); in kvm_arch_irq_bypass_stop()
1746 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_start() local
1749 kvm_arm_resume_guest(irqfd in kvm_arch_irq_bypass_start()
[all...]
H A DMakefile21 vgic/vgic-irqfd.o vgic/vgic-v2.o \
/kernel/linux/linux-5.10/arch/loongarch/kvm/
H A DMakefile20 timer.o intc/ls3a_ext_irq.o irqfd.o csr.o
/kernel/linux/linux-6.6/arch/arm64/kvm/
H A Darm.c2364 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
2367 return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_add_producer()
2368 &irqfd->irq_entry); in kvm_arch_irq_bypass_add_producer()
2373 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
2376 kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_del_producer()
2377 &irqfd->irq_entry); in kvm_arch_irq_bypass_del_producer()
2382 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_stop() local
2385 kvm_arm_halt_guest(irqfd->kvm); in kvm_arch_irq_bypass_stop()
2390 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_start() local
2393 kvm_arm_resume_guest(irqfd in kvm_arch_irq_bypass_start()
[all...]
H A DMakefile19 vgic/vgic-irqfd.o vgic/vgic-v2.o \
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/aarch64/
H A Dvgic_irq.c636 struct kvm_irqfd irqfd = { in kvm_routing_and_irqfd_check() local
641 vm_ioctl(vm, KVM_IRQFD, &irqfd); in kvm_routing_and_irqfd_check()
/kernel/linux/linux-5.10/arch/powerpc/kvm/
H A Dbook3s_hv.c5286 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_add_producer_hv() local
5289 irqfd->producer = prod; in kvmppc_irq_bypass_add_producer_hv()
5291 ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_add_producer_hv()
5294 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_add_producer_hv()
5303 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_del_producer_hv() local
5306 irqfd->producer = NULL; in kvmppc_irq_bypass_del_producer_hv()
5313 ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_del_producer_hv()
5316 prod->irq, irqfd in kvmppc_irq_bypass_del_producer_hv()
[all...]
H A Dpowerpc.c841 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
843 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer()
854 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
856 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
/kernel/linux/linux-6.6/arch/powerpc/kvm/
H A Dbook3s_hv.c5782 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_add_producer_hv() local
5785 irqfd->producer = prod; in kvmppc_irq_bypass_add_producer_hv()
5787 ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_add_producer_hv()
5790 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_add_producer_hv()
5799 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_del_producer_hv() local
5802 irqfd->producer = NULL; in kvmppc_irq_bypass_del_producer_hv()
5809 ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_del_producer_hv()
5812 prod->irq, irqfd in kvmppc_irq_bypass_del_producer_hv()
[all...]
H A Dpowerpc.c873 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
875 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer()
886 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
888 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
/kernel/linux/linux-5.10/arch/x86/kvm/
H A Dx86.c10642 /* Reserve bit 1 of irq_sources_bitmap for irqfd-resampler */ in kvm_arch_init_vm()
11406 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
11410 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer()
11411 kvm_arch_start_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer()
11412 ret = kvm_x86_ops.update_pi_irte(irqfd->kvm, in kvm_arch_irq_bypass_add_producer()
11413 prod->irq, irqfd->gsi, 1); in kvm_arch_irq_bypass_add_producer()
11416 kvm_arch_end_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer()
11425 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
11428 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer()
11429 irqfd in kvm_arch_irq_bypass_del_producer()
[all...]
/kernel/linux/linux-6.6/arch/x86/kvm/
H A Dx86.c12340 /* Reserve bit 1 of irq_sources_bitmap for irqfd-resampler */ in kvm_arch_init_vm()
13237 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local
13241 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer()
13242 kvm_arch_start_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer()
13243 ret = static_call(kvm_x86_pi_update_irte)(irqfd->kvm, in kvm_arch_irq_bypass_add_producer()
13244 prod->irq, irqfd->gsi, 1); in kvm_arch_irq_bypass_add_producer()
13247 kvm_arch_end_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer()
13256 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local
13259 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer()
13260 irqfd in kvm_arch_irq_bypass_del_producer()
[all...]

Completed in 57 milliseconds