irqfd            5148 arch/powerpc/kvm/book3s_hv.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            5151 arch/powerpc/kvm/book3s_hv.c 	irqfd->producer = prod;
irqfd            5153 arch/powerpc/kvm/book3s_hv.c 	ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi);
irqfd            5156 arch/powerpc/kvm/book3s_hv.c 			prod->irq, irqfd->gsi, ret);
irqfd            5165 arch/powerpc/kvm/book3s_hv.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            5168 arch/powerpc/kvm/book3s_hv.c 	irqfd->producer = NULL;
irqfd            5175 arch/powerpc/kvm/book3s_hv.c 	ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi);
irqfd            5178 arch/powerpc/kvm/book3s_hv.c 			prod->irq, irqfd->gsi, ret);
irqfd             838 arch/powerpc/kvm/powerpc.c 	struct kvm_kernel_irqfd *irqfd =
irqfd             840 arch/powerpc/kvm/powerpc.c 	struct kvm *kvm = irqfd->kvm;
irqfd             851 arch/powerpc/kvm/powerpc.c 	struct kvm_kernel_irqfd *irqfd =
irqfd             853 arch/powerpc/kvm/powerpc.c 	struct kvm *kvm = irqfd->kvm;
irqfd            10308 arch/x86/kvm/x86.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            10311 arch/x86/kvm/x86.c 	irqfd->producer = prod;
irqfd            10313 arch/x86/kvm/x86.c 	return kvm_x86_ops->update_pi_irte(irqfd->kvm,
irqfd            10314 arch/x86/kvm/x86.c 					   prod->irq, irqfd->gsi, 1);
irqfd            10321 arch/x86/kvm/x86.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            10324 arch/x86/kvm/x86.c 	WARN_ON(irqfd->producer != prod);
irqfd            10325 arch/x86/kvm/x86.c 	irqfd->producer = NULL;
irqfd            10333 arch/x86/kvm/x86.c 	ret = kvm_x86_ops->update_pi_irte(irqfd->kvm, prod->irq, irqfd->gsi, 0);
irqfd            10336 arch/x86/kvm/x86.c 		       " fails: %d\n", irqfd->consumer.token, ret);
irqfd             109 drivers/vfio/virqfd.c 	struct fd irqfd;
irqfd             128 drivers/vfio/virqfd.c 	irqfd = fdget(fd);
irqfd             129 drivers/vfio/virqfd.c 	if (!irqfd.file) {
irqfd             134 drivers/vfio/virqfd.c 	ctx = eventfd_ctx_fileget(irqfd.file);
irqfd             166 drivers/vfio/virqfd.c 	events = vfs_poll(irqfd.file, &virqfd->pt);
irqfd             181 drivers/vfio/virqfd.c 	fdput(irqfd);
irqfd             187 drivers/vfio/virqfd.c 	fdput(irqfd);
irqfd            1650 virt/kvm/arm/arm.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            1653 virt/kvm/arm/arm.c 	return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq,
irqfd            1654 virt/kvm/arm/arm.c 					  &irqfd->irq_entry);
irqfd            1659 virt/kvm/arm/arm.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            1662 virt/kvm/arm/arm.c 	kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq,
irqfd            1663 virt/kvm/arm/arm.c 				     &irqfd->irq_entry);
irqfd            1668 virt/kvm/arm/arm.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            1671 virt/kvm/arm/arm.c 	kvm_arm_halt_guest(irqfd->kvm);
irqfd            1676 virt/kvm/arm/arm.c 	struct kvm_kernel_irqfd *irqfd =
irqfd            1679 virt/kvm/arm/arm.c 	kvm_arm_resume_guest(irqfd->kvm);
irqfd              44 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd =
irqfd              46 virt/kvm/eventfd.c 	struct kvm *kvm = irqfd->kvm;
irqfd              48 virt/kvm/eventfd.c 	if (!irqfd->resampler) {
irqfd              49 virt/kvm/eventfd.c 		kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1,
irqfd              51 virt/kvm/eventfd.c 		kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0,
irqfd              55 virt/kvm/eventfd.c 			    irqfd->gsi, 1, false);
irqfd              68 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd;
irqfd              80 virt/kvm/eventfd.c 	list_for_each_entry_rcu(irqfd, &resampler->list, resampler_link)
irqfd              81 virt/kvm/eventfd.c 		eventfd_signal(irqfd->resamplefd, 1);
irqfd              87 virt/kvm/eventfd.c irqfd_resampler_shutdown(struct kvm_kernel_irqfd *irqfd)
irqfd              89 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd_resampler *resampler = irqfd->resampler;
irqfd              94 virt/kvm/eventfd.c 	list_del_rcu(&irqfd->resampler_link);
irqfd             114 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd =
irqfd             116 virt/kvm/eventfd.c 	struct kvm *kvm = irqfd->kvm;
irqfd             126 virt/kvm/eventfd.c 	eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt);
irqfd             132 virt/kvm/eventfd.c 	flush_work(&irqfd->inject);
irqfd             134 virt/kvm/eventfd.c 	if (irqfd->resampler) {
irqfd             135 virt/kvm/eventfd.c 		irqfd_resampler_shutdown(irqfd);
irqfd             136 virt/kvm/eventfd.c 		eventfd_ctx_put(irqfd->resamplefd);
irqfd             143 virt/kvm/eventfd.c 	irq_bypass_unregister_consumer(&irqfd->consumer);
irqfd             145 virt/kvm/eventfd.c 	eventfd_ctx_put(irqfd->eventfd);
irqfd             146 virt/kvm/eventfd.c 	kfree(irqfd);
irqfd             152 virt/kvm/eventfd.c irqfd_is_active(struct kvm_kernel_irqfd *irqfd)
irqfd             154 virt/kvm/eventfd.c 	return list_empty(&irqfd->list) ? false : true;
irqfd             163 virt/kvm/eventfd.c irqfd_deactivate(struct kvm_kernel_irqfd *irqfd)
irqfd             165 virt/kvm/eventfd.c 	BUG_ON(!irqfd_is_active(irqfd));
irqfd             167 virt/kvm/eventfd.c 	list_del_init(&irqfd->list);
irqfd             169 virt/kvm/eventfd.c 	queue_work(irqfd_cleanup_wq, &irqfd->shutdown);
irqfd             187 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd =
irqfd             191 virt/kvm/eventfd.c 	struct kvm *kvm = irqfd->kvm;
irqfd             198 virt/kvm/eventfd.c 			seq = read_seqcount_begin(&irqfd->irq_entry_sc);
irqfd             199 virt/kvm/eventfd.c 			irq = irqfd->irq_entry;
irqfd             200 virt/kvm/eventfd.c 		} while (read_seqcount_retry(&irqfd->irq_entry_sc, seq));
irqfd             205 virt/kvm/eventfd.c 			schedule_work(&irqfd->inject);
irqfd             224 virt/kvm/eventfd.c 		if (irqfd_is_active(irqfd))
irqfd             225 virt/kvm/eventfd.c 			irqfd_deactivate(irqfd);
irqfd             237 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd =
irqfd             239 virt/kvm/eventfd.c 	add_wait_queue(wqh, &irqfd->wait);
irqfd             243 virt/kvm/eventfd.c static void irqfd_update(struct kvm *kvm, struct kvm_kernel_irqfd *irqfd)
irqfd             249 virt/kvm/eventfd.c 	n_entries = kvm_irq_map_gsi(kvm, entries, irqfd->gsi);
irqfd             251 virt/kvm/eventfd.c 	write_seqcount_begin(&irqfd->irq_entry_sc);
irqfd             255 virt/kvm/eventfd.c 		irqfd->irq_entry = *e;
irqfd             257 virt/kvm/eventfd.c 		irqfd->irq_entry.type = 0;
irqfd             259 virt/kvm/eventfd.c 	write_seqcount_end(&irqfd->irq_entry_sc);
irqfd             284 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd, *tmp;
irqfd             297 virt/kvm/eventfd.c 	irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL_ACCOUNT);
irqfd             298 virt/kvm/eventfd.c 	if (!irqfd)
irqfd             301 virt/kvm/eventfd.c 	irqfd->kvm = kvm;
irqfd             302 virt/kvm/eventfd.c 	irqfd->gsi = args->gsi;
irqfd             303 virt/kvm/eventfd.c 	INIT_LIST_HEAD(&irqfd->list);
irqfd             304 virt/kvm/eventfd.c 	INIT_WORK(&irqfd->inject, irqfd_inject);
irqfd             305 virt/kvm/eventfd.c 	INIT_WORK(&irqfd->shutdown, irqfd_shutdown);
irqfd             306 virt/kvm/eventfd.c 	seqcount_init(&irqfd->irq_entry_sc);
irqfd             320 virt/kvm/eventfd.c 	irqfd->eventfd = eventfd;
irqfd             331 virt/kvm/eventfd.c 		irqfd->resamplefd = resamplefd;
irqfd             332 virt/kvm/eventfd.c 		INIT_LIST_HEAD(&irqfd->resampler_link);
irqfd             338 virt/kvm/eventfd.c 			if (resampler->notifier.gsi == irqfd->gsi) {
irqfd             339 virt/kvm/eventfd.c 				irqfd->resampler = resampler;
irqfd             344 virt/kvm/eventfd.c 		if (!irqfd->resampler) {
irqfd             355 virt/kvm/eventfd.c 			resampler->notifier.gsi = irqfd->gsi;
irqfd             362 virt/kvm/eventfd.c 			irqfd->resampler = resampler;
irqfd             365 virt/kvm/eventfd.c 		list_add_rcu(&irqfd->resampler_link, &irqfd->resampler->list);
irqfd             375 virt/kvm/eventfd.c 	init_waitqueue_func_entry(&irqfd->wait, irqfd_wakeup);
irqfd             376 virt/kvm/eventfd.c 	init_poll_funcptr(&irqfd->pt, irqfd_ptable_queue_proc);
irqfd             382 virt/kvm/eventfd.c 		if (irqfd->eventfd != tmp->eventfd)
irqfd             391 virt/kvm/eventfd.c 	irqfd_update(kvm, irqfd);
irqfd             393 virt/kvm/eventfd.c 	list_add_tail(&irqfd->list, &kvm->irqfds.items);
irqfd             401 virt/kvm/eventfd.c 	events = vfs_poll(f.file, &irqfd->pt);
irqfd             404 virt/kvm/eventfd.c 		schedule_work(&irqfd->inject);
irqfd             408 virt/kvm/eventfd.c 		irqfd->consumer.token = (void *)irqfd->eventfd;
irqfd             409 virt/kvm/eventfd.c 		irqfd->consumer.add_producer = kvm_arch_irq_bypass_add_producer;
irqfd             410 virt/kvm/eventfd.c 		irqfd->consumer.del_producer = kvm_arch_irq_bypass_del_producer;
irqfd             411 virt/kvm/eventfd.c 		irqfd->consumer.stop = kvm_arch_irq_bypass_stop;
irqfd             412 virt/kvm/eventfd.c 		irqfd->consumer.start = kvm_arch_irq_bypass_start;
irqfd             413 virt/kvm/eventfd.c 		ret = irq_bypass_register_consumer(&irqfd->consumer);
irqfd             416 virt/kvm/eventfd.c 				irqfd->consumer.token, ret);
irqfd             430 virt/kvm/eventfd.c 	if (irqfd->resampler)
irqfd             431 virt/kvm/eventfd.c 		irqfd_resampler_shutdown(irqfd);
irqfd             442 virt/kvm/eventfd.c 	kfree(irqfd);
irqfd             529 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd, *tmp;
irqfd             538 virt/kvm/eventfd.c 	list_for_each_entry_safe(irqfd, tmp, &kvm->irqfds.items, list) {
irqfd             539 virt/kvm/eventfd.c 		if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) {
irqfd             546 virt/kvm/eventfd.c 			write_seqcount_begin(&irqfd->irq_entry_sc);
irqfd             547 virt/kvm/eventfd.c 			irqfd->irq_entry.type = 0;
irqfd             548 virt/kvm/eventfd.c 			write_seqcount_end(&irqfd->irq_entry_sc);
irqfd             549 virt/kvm/eventfd.c 			irqfd_deactivate(irqfd);
irqfd             585 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd, *tmp;
irqfd             589 virt/kvm/eventfd.c 	list_for_each_entry_safe(irqfd, tmp, &kvm->irqfds.items, list)
irqfd             590 virt/kvm/eventfd.c 		irqfd_deactivate(irqfd);
irqfd             608 virt/kvm/eventfd.c 	struct kvm_kernel_irqfd *irqfd;
irqfd             612 virt/kvm/eventfd.c 	list_for_each_entry(irqfd, &kvm->irqfds.items, list) {
irqfd             613 virt/kvm/eventfd.c 		irqfd_update(kvm, irqfd);
irqfd             616 virt/kvm/eventfd.c 		if (irqfd->producer) {
irqfd             618 virt/kvm/eventfd.c 					irqfd->kvm, irqfd->producer->irq,
irqfd             619 virt/kvm/eventfd.c 					irqfd->gsi, 1);