Lines Matching refs:kioeventfd
1157 struct privcmd_kernel_ioeventfd *kioeventfd; in ioeventfd_interrupt() local
1177 list_for_each_entry(kioeventfd, &kioreq->ioeventfds, list) { in ioeventfd_interrupt()
1178 if (ioreq->addr == kioeventfd->addr + VIRTIO_MMIO_QUEUE_NOTIFY && in ioeventfd_interrupt()
1179 ioreq->size == kioeventfd->addr_len && in ioeventfd_interrupt()
1180 (ioreq->data & QUEUE_NOTIFY_VQ_MASK) == kioeventfd->vq) { in ioeventfd_interrupt()
1181 eventfd_signal(kioeventfd->eventfd); in ioeventfd_interrupt()
1299 struct privcmd_kernel_ioeventfd *kioeventfd; in get_ioreq() local
1317 list_for_each_entry(kioeventfd, &kioreq->ioeventfds, list) { in get_ioreq()
1318 if (eventfd == kioeventfd->eventfd) { in get_ioreq()
1332 static void ioeventfd_free(struct privcmd_kernel_ioeventfd *kioeventfd) in ioeventfd_free() argument
1334 list_del(&kioeventfd->list); in ioeventfd_free()
1335 eventfd_ctx_put(kioeventfd->eventfd); in ioeventfd_free()
1336 kfree(kioeventfd); in ioeventfd_free()
1341 struct privcmd_kernel_ioeventfd *kioeventfd; in privcmd_ioeventfd_assign() local
1359 kioeventfd = kzalloc(sizeof(*kioeventfd), GFP_KERNEL); in privcmd_ioeventfd_assign()
1360 if (!kioeventfd) in privcmd_ioeventfd_assign()
1363 kioeventfd->eventfd = eventfd_ctx_fdget(ioeventfd->event_fd); in privcmd_ioeventfd_assign()
1364 if (IS_ERR(kioeventfd->eventfd)) { in privcmd_ioeventfd_assign()
1365 ret = PTR_ERR(kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1369 kioeventfd->addr = ioeventfd->addr; in privcmd_ioeventfd_assign()
1370 kioeventfd->addr_len = ioeventfd->addr_len; in privcmd_ioeventfd_assign()
1371 kioeventfd->vq = ioeventfd->vq; in privcmd_ioeventfd_assign()
1374 kioreq = get_ioreq(ioeventfd, kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1382 list_add_tail(&kioeventfd->list, &kioreq->ioeventfds); in privcmd_ioeventfd_assign()
1390 eventfd_ctx_put(kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1393 kfree(kioeventfd); in privcmd_ioeventfd_assign()
1410 struct privcmd_kernel_ioeventfd *kioeventfd, *tmp; in privcmd_ioeventfd_deassign() local
1421 list_for_each_entry_safe(kioeventfd, tmp, &kioreq->ioeventfds, list) { in privcmd_ioeventfd_deassign()
1422 if (eventfd == kioeventfd->eventfd) { in privcmd_ioeventfd_deassign()
1423 ioeventfd_free(kioeventfd); in privcmd_ioeventfd_deassign()
1475 struct privcmd_kernel_ioeventfd *kioeventfd, *tmp; in privcmd_ioeventfd_exit() local
1478 list_for_each_entry_safe(kioeventfd, tmp, &kioreq->ioeventfds, list) in privcmd_ioeventfd_exit()
1479 ioeventfd_free(kioeventfd); in privcmd_ioeventfd_exit()