Lines Matching refs:kernel_if
281 queue->kernel_if->u.g.vas[i], in qp_free_queue()
282 queue->kernel_if->u.g.pas[i]); in qp_free_queue()
300 size_t queue_size = sizeof(*queue) + sizeof(*queue->kernel_if); in qp_alloc_queue()
308 (sizeof(*queue->kernel_if->u.g.pas) + in qp_alloc_queue()
309 sizeof(*queue->kernel_if->u.g.vas))) in qp_alloc_queue()
312 pas_size = num_pages * sizeof(*queue->kernel_if->u.g.pas); in qp_alloc_queue()
313 vas_size = num_pages * sizeof(*queue->kernel_if->u.g.vas); in qp_alloc_queue()
322 queue->kernel_if = (struct vmci_queue_kern_if *)(queue + 1); in qp_alloc_queue()
323 queue->kernel_if->mutex = NULL; in qp_alloc_queue()
324 queue->kernel_if->num_pages = num_pages; in qp_alloc_queue()
325 queue->kernel_if->u.g.pas = (dma_addr_t *)(queue->kernel_if + 1); in qp_alloc_queue()
326 queue->kernel_if->u.g.vas = in qp_alloc_queue()
327 (void **)((u8 *)queue->kernel_if->u.g.pas + pas_size); in qp_alloc_queue()
328 queue->kernel_if->host = false; in qp_alloc_queue()
331 queue->kernel_if->u.g.vas[i] = in qp_alloc_queue()
333 &queue->kernel_if->u.g.pas[i], in qp_alloc_queue()
335 if (!queue->kernel_if->u.g.vas[i]) { in qp_alloc_queue()
343 queue->q_header = queue->kernel_if->u.g.vas[0]; in qp_alloc_queue()
360 struct vmci_queue_kern_if *kernel_if = queue->kernel_if; in __qp_memcpy_to_queue() local
371 if (kernel_if->host) in __qp_memcpy_to_queue()
372 va = kmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_to_queue()
374 va = kernel_if->u.g.vas[page_index + 1]; in __qp_memcpy_to_queue()
391 if (kernel_if->host) in __qp_memcpy_to_queue()
392 kunmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_to_queue()
401 if (kernel_if->host) in __qp_memcpy_to_queue()
402 kunmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_to_queue()
420 struct vmci_queue_kern_if *kernel_if = queue->kernel_if; in __qp_memcpy_from_queue() local
431 if (kernel_if->host) in __qp_memcpy_from_queue()
432 va = kmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_from_queue()
434 va = kernel_if->u.g.vas[page_index + 1]; in __qp_memcpy_from_queue()
451 if (kernel_if->host) in __qp_memcpy_from_queue()
452 kunmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_from_queue()
461 if (kernel_if->host) in __qp_memcpy_from_queue()
462 kunmap(kernel_if->u.h.page[page_index]); in __qp_memcpy_from_queue()
508 produce_q->kernel_if->u.g.pas[i] >> PAGE_SHIFT; in qp_alloc_ppn_set()
521 consume_q->kernel_if->u.g.pas[i] >> PAGE_SHIFT; in qp_alloc_ppn_set()
631 const size_t queue_size = sizeof(*queue) + sizeof(*(queue->kernel_if)); in qp_host_alloc_queue()
637 sizeof(*queue->kernel_if->u.h.page)) in qp_host_alloc_queue()
640 queue_page_size = num_pages * sizeof(*queue->kernel_if->u.h.page); in qp_host_alloc_queue()
649 queue->kernel_if = (struct vmci_queue_kern_if *)(queue + 1); in qp_host_alloc_queue()
650 queue->kernel_if->host = true; in qp_host_alloc_queue()
651 queue->kernel_if->mutex = NULL; in qp_host_alloc_queue()
652 queue->kernel_if->num_pages = num_pages; in qp_host_alloc_queue()
653 queue->kernel_if->u.h.header_page = in qp_host_alloc_queue()
655 queue->kernel_if->u.h.page = in qp_host_alloc_queue()
656 &queue->kernel_if->u.h.header_page[1]; in qp_host_alloc_queue()
686 if (produce_q->kernel_if->host) { in qp_init_queue_mutex()
687 produce_q->kernel_if->mutex = &produce_q->kernel_if->__mutex; in qp_init_queue_mutex()
688 consume_q->kernel_if->mutex = &produce_q->kernel_if->__mutex; in qp_init_queue_mutex()
689 mutex_init(produce_q->kernel_if->mutex); in qp_init_queue_mutex()
699 if (produce_q->kernel_if->host) { in qp_cleanup_queue_mutex()
700 produce_q->kernel_if->mutex = NULL; in qp_cleanup_queue_mutex()
701 consume_q->kernel_if->mutex = NULL; in qp_cleanup_queue_mutex()
712 if (queue->kernel_if->host) in qp_acquire_queue_mutex()
713 mutex_lock(queue->kernel_if->mutex); in qp_acquire_queue_mutex()
723 if (queue->kernel_if->host) in qp_release_queue_mutex()
724 mutex_unlock(queue->kernel_if->mutex); in qp_release_queue_mutex()
759 produce_q->kernel_if->num_pages, 1, in qp_host_get_user_memory()
760 produce_q->kernel_if->u.h.header_page); in qp_host_get_user_memory()
761 if (retval < (int)produce_q->kernel_if->num_pages) { in qp_host_get_user_memory()
765 qp_release_pages(produce_q->kernel_if->u.h.header_page, in qp_host_get_user_memory()
772 consume_q->kernel_if->num_pages, 1, in qp_host_get_user_memory()
773 consume_q->kernel_if->u.h.header_page); in qp_host_get_user_memory()
774 if (retval < (int)consume_q->kernel_if->num_pages) { in qp_host_get_user_memory()
778 qp_release_pages(consume_q->kernel_if->u.h.header_page, in qp_host_get_user_memory()
780 qp_release_pages(produce_q->kernel_if->u.h.header_page, in qp_host_get_user_memory()
781 produce_q->kernel_if->num_pages, false); in qp_host_get_user_memory()
808 produce_q->kernel_if->num_pages * PAGE_SIZE; in qp_host_register_user_memory()
821 qp_release_pages(produce_q->kernel_if->u.h.header_page, in qp_host_unregister_user_memory()
822 produce_q->kernel_if->num_pages, true); in qp_host_unregister_user_memory()
823 memset(produce_q->kernel_if->u.h.header_page, 0, in qp_host_unregister_user_memory()
824 sizeof(*produce_q->kernel_if->u.h.header_page) * in qp_host_unregister_user_memory()
825 produce_q->kernel_if->num_pages); in qp_host_unregister_user_memory()
826 qp_release_pages(consume_q->kernel_if->u.h.header_page, in qp_host_unregister_user_memory()
827 consume_q->kernel_if->num_pages, true); in qp_host_unregister_user_memory()
828 memset(consume_q->kernel_if->u.h.header_page, 0, in qp_host_unregister_user_memory()
829 sizeof(*consume_q->kernel_if->u.h.header_page) * in qp_host_unregister_user_memory()
830 consume_q->kernel_if->num_pages); in qp_host_unregister_user_memory()
852 if (produce_q->kernel_if->u.h.header_page == NULL || in qp_host_map_queues()
853 *produce_q->kernel_if->u.h.header_page == NULL) in qp_host_map_queues()
856 headers[0] = *produce_q->kernel_if->u.h.header_page; in qp_host_map_queues()
857 headers[1] = *consume_q->kernel_if->u.h.header_page; in qp_host_map_queues()