Lines Matching refs:evtchnfd

1804 struct evtchnfd {  struct
1823 struct evtchnfd *evtchnfd; in kvm_xen_eventfd_update() local
1828 evtchnfd = idr_find(&kvm->arch.xen.evtchn_ports, port); in kvm_xen_eventfd_update()
1831 if (!evtchnfd) in kvm_xen_eventfd_update()
1836 if (evtchnfd->type != data->u.evtchn.type) in kvm_xen_eventfd_update()
1843 if (!evtchnfd->deliver.port.port || in kvm_xen_eventfd_update()
1844 evtchnfd->deliver.port.port != data->u.evtchn.deliver.port.port) in kvm_xen_eventfd_update()
1851 evtchnfd->deliver.port.priority = data->u.evtchn.deliver.port.priority; in kvm_xen_eventfd_update()
1852 if (evtchnfd->deliver.port.vcpu_id != data->u.evtchn.deliver.port.vcpu) { in kvm_xen_eventfd_update()
1853 evtchnfd->deliver.port.vcpu_id = data->u.evtchn.deliver.port.vcpu; in kvm_xen_eventfd_update()
1854 evtchnfd->deliver.port.vcpu_idx = -1; in kvm_xen_eventfd_update()
1871 struct evtchnfd *evtchnfd; in kvm_xen_eventfd_assign() local
1874 evtchnfd = kzalloc(sizeof(struct evtchnfd), GFP_KERNEL); in kvm_xen_eventfd_assign()
1875 if (!evtchnfd) in kvm_xen_eventfd_assign()
1906 evtchnfd->send_port = data->u.evtchn.send_port; in kvm_xen_eventfd_assign()
1907 evtchnfd->type = data->u.evtchn.type; in kvm_xen_eventfd_assign()
1909 evtchnfd->deliver.eventfd.ctx = eventfd; in kvm_xen_eventfd_assign()
1915 evtchnfd->deliver.port.port = data->u.evtchn.deliver.port.port; in kvm_xen_eventfd_assign()
1916 evtchnfd->deliver.port.vcpu_id = data->u.evtchn.deliver.port.vcpu; in kvm_xen_eventfd_assign()
1917 evtchnfd->deliver.port.vcpu_idx = -1; in kvm_xen_eventfd_assign()
1918 evtchnfd->deliver.port.priority = data->u.evtchn.deliver.port.priority; in kvm_xen_eventfd_assign()
1922 ret = idr_alloc(&kvm->arch.xen.evtchn_ports, evtchnfd, port, port + 1, in kvm_xen_eventfd_assign()
1934 kfree(evtchnfd); in kvm_xen_eventfd_assign()
1940 struct evtchnfd *evtchnfd; in kvm_xen_eventfd_deassign() local
1943 evtchnfd = idr_remove(&kvm->arch.xen.evtchn_ports, port); in kvm_xen_eventfd_deassign()
1946 if (!evtchnfd) in kvm_xen_eventfd_deassign()
1950 if (!evtchnfd->deliver.port.port) in kvm_xen_eventfd_deassign()
1951 eventfd_ctx_put(evtchnfd->deliver.eventfd.ctx); in kvm_xen_eventfd_deassign()
1952 kfree(evtchnfd); in kvm_xen_eventfd_deassign()
1958 struct evtchnfd *evtchnfd, **all_evtchnfds; in kvm_xen_eventfd_reset() local
1969 idr_for_each_entry(&kvm->arch.xen.evtchn_ports, evtchnfd, i) in kvm_xen_eventfd_reset()
1972 all_evtchnfds = kmalloc_array(n, sizeof(struct evtchnfd *), GFP_KERNEL); in kvm_xen_eventfd_reset()
1979 idr_for_each_entry(&kvm->arch.xen.evtchn_ports, evtchnfd, i) { in kvm_xen_eventfd_reset()
1980 all_evtchnfds[n++] = evtchnfd; in kvm_xen_eventfd_reset()
1981 idr_remove(&kvm->arch.xen.evtchn_ports, evtchnfd->send_port); in kvm_xen_eventfd_reset()
1988 evtchnfd = all_evtchnfds[n]; in kvm_xen_eventfd_reset()
1989 if (!evtchnfd->deliver.port.port) in kvm_xen_eventfd_reset()
1990 eventfd_ctx_put(evtchnfd->deliver.eventfd.ctx); in kvm_xen_eventfd_reset()
1991 kfree(evtchnfd); in kvm_xen_eventfd_reset()
2020 struct evtchnfd *evtchnfd; in kvm_xen_hcall_evtchn_send() local
2036 evtchnfd = idr_find(&vcpu->kvm->arch.xen.evtchn_ports, send.port); in kvm_xen_hcall_evtchn_send()
2038 if (!evtchnfd) in kvm_xen_hcall_evtchn_send()
2041 if (evtchnfd->deliver.port.port) { in kvm_xen_hcall_evtchn_send()
2042 int ret = kvm_xen_set_evtchn(&evtchnfd->deliver.port, vcpu->kvm); in kvm_xen_hcall_evtchn_send()
2046 eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); in kvm_xen_hcall_evtchn_send()
2115 struct evtchnfd *evtchnfd; in kvm_xen_destroy_vm() local
2120 idr_for_each_entry(&kvm->arch.xen.evtchn_ports, evtchnfd, i) { in kvm_xen_destroy_vm()
2121 if (!evtchnfd->deliver.port.port) in kvm_xen_destroy_vm()
2122 eventfd_ctx_put(evtchnfd->deliver.eventfd.ctx); in kvm_xen_destroy_vm()
2123 kfree(evtchnfd); in kvm_xen_destroy_vm()