Lines Matching refs:kioeventfd
1166 struct privcmd_kernel_ioeventfd *kioeventfd; in ioeventfd_interrupt() local
1186 list_for_each_entry(kioeventfd, &kioreq->ioeventfds, list) { in ioeventfd_interrupt()
1187 if (ioreq->addr == kioeventfd->addr + VIRTIO_MMIO_QUEUE_NOTIFY && in ioeventfd_interrupt()
1188 ioreq->size == kioeventfd->addr_len && in ioeventfd_interrupt()
1189 (ioreq->data & QUEUE_NOTIFY_VQ_MASK) == kioeventfd->vq) { in ioeventfd_interrupt()
1190 eventfd_signal(kioeventfd->eventfd); in ioeventfd_interrupt()
1308 struct privcmd_kernel_ioeventfd *kioeventfd; in get_ioreq() local
1326 list_for_each_entry(kioeventfd, &kioreq->ioeventfds, list) { in get_ioreq()
1327 if (eventfd == kioeventfd->eventfd) { in get_ioreq()
1341 static void ioeventfd_free(struct privcmd_kernel_ioeventfd *kioeventfd) in ioeventfd_free() argument
1343 list_del(&kioeventfd->list); in ioeventfd_free()
1344 eventfd_ctx_put(kioeventfd->eventfd); in ioeventfd_free()
1345 kfree(kioeventfd); in ioeventfd_free()
1350 struct privcmd_kernel_ioeventfd *kioeventfd; in privcmd_ioeventfd_assign() local
1369 kioeventfd = kzalloc(sizeof(*kioeventfd), GFP_KERNEL); in privcmd_ioeventfd_assign()
1370 if (!kioeventfd) in privcmd_ioeventfd_assign()
1379 kioeventfd->eventfd = eventfd_ctx_fileget(fd_file(f)); in privcmd_ioeventfd_assign()
1382 if (IS_ERR(kioeventfd->eventfd)) { in privcmd_ioeventfd_assign()
1383 ret = PTR_ERR(kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1387 kioeventfd->addr = ioeventfd->addr; in privcmd_ioeventfd_assign()
1388 kioeventfd->addr_len = ioeventfd->addr_len; in privcmd_ioeventfd_assign()
1389 kioeventfd->vq = ioeventfd->vq; in privcmd_ioeventfd_assign()
1392 kioreq = get_ioreq(ioeventfd, kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1400 list_add_tail(&kioeventfd->list, &kioreq->ioeventfds); in privcmd_ioeventfd_assign()
1408 eventfd_ctx_put(kioeventfd->eventfd); in privcmd_ioeventfd_assign()
1411 kfree(kioeventfd); in privcmd_ioeventfd_assign()
1428 struct privcmd_kernel_ioeventfd *kioeventfd, *tmp; in privcmd_ioeventfd_deassign() local
1439 list_for_each_entry_safe(kioeventfd, tmp, &kioreq->ioeventfds, list) { in privcmd_ioeventfd_deassign()
1440 if (eventfd == kioeventfd->eventfd) { in privcmd_ioeventfd_deassign()
1441 ioeventfd_free(kioeventfd); in privcmd_ioeventfd_deassign()
1493 struct privcmd_kernel_ioeventfd *kioeventfd, *tmp; in privcmd_ioeventfd_exit() local
1496 list_for_each_entry_safe(kioeventfd, tmp, &kioreq->ioeventfds, list) in privcmd_ioeventfd_exit()
1497 ioeventfd_free(kioeventfd); in privcmd_ioeventfd_exit()