Lines Matching refs:dma_map

128 			      struct dma_mapping *dma_map)  in __genwqe_add_mapping()  argument
133 list_add(&dma_map->card_list, &cfile->map_list); in __genwqe_add_mapping()
138 struct dma_mapping *dma_map) in __genwqe_del_mapping() argument
143 list_del(&dma_map->card_list); in __genwqe_del_mapping()
199 struct dma_mapping *dma_map; in genwqe_remove_mappings() local
204 dma_map = list_entry(node, struct dma_mapping, card_list); in genwqe_remove_mappings()
206 list_del_init(&dma_map->card_list); in genwqe_remove_mappings()
217 __func__, i++, dma_map->u_vaddr, in genwqe_remove_mappings()
218 (unsigned long)dma_map->k_vaddr, in genwqe_remove_mappings()
219 (unsigned long)dma_map->dma_addr); in genwqe_remove_mappings()
221 if (dma_map->type == GENWQE_MAPPING_RAW) { in genwqe_remove_mappings()
223 __genwqe_free_consistent(cd, dma_map->size, in genwqe_remove_mappings()
224 dma_map->k_vaddr, in genwqe_remove_mappings()
225 dma_map->dma_addr); in genwqe_remove_mappings()
226 kfree(dma_map); in genwqe_remove_mappings()
227 } else if (dma_map->type == GENWQE_MAPPING_SGL_TEMP) { in genwqe_remove_mappings()
229 genwqe_user_vunmap(cd, dma_map, NULL); in genwqe_remove_mappings()
237 struct dma_mapping *dma_map; in genwqe_remove_pinnings() local
241 dma_map = list_entry(node, struct dma_mapping, pin_list); in genwqe_remove_pinnings()
251 list_del_init(&dma_map->pin_list); in genwqe_remove_pinnings()
252 genwqe_user_vunmap(cd, dma_map, NULL); in genwqe_remove_pinnings()
253 kfree(dma_map); in genwqe_remove_pinnings()
399 struct dma_mapping *dma_map; in genwqe_vma_close() local
406 dma_map = __genwqe_search_mapping(cfile, vma->vm_start, vsize, in genwqe_vma_close()
408 if (dma_map == NULL) { in genwqe_vma_close()
415 __genwqe_del_mapping(cfile, dma_map); in genwqe_vma_close()
416 __genwqe_free_consistent(cd, dma_map->size, dma_map->k_vaddr, in genwqe_vma_close()
417 dma_map->dma_addr); in genwqe_vma_close()
418 kfree(dma_map); in genwqe_vma_close()
444 struct dma_mapping *dma_map; in genwqe_mmap() local
452 dma_map = kzalloc(sizeof(struct dma_mapping), GFP_KERNEL); in genwqe_mmap()
453 if (dma_map == NULL) in genwqe_mmap()
456 genwqe_mapping_init(dma_map, GENWQE_MAPPING_RAW); in genwqe_mmap()
457 dma_map->u_vaddr = (void *)vma->vm_start; in genwqe_mmap()
458 dma_map->size = vsize; in genwqe_mmap()
459 dma_map->nr_pages = DIV_ROUND_UP(vsize, PAGE_SIZE); in genwqe_mmap()
460 dma_map->k_vaddr = __genwqe_alloc_consistent(cd, vsize, in genwqe_mmap()
461 &dma_map->dma_addr); in genwqe_mmap()
462 if (dma_map->k_vaddr == NULL) { in genwqe_mmap()
468 *(dma_addr_t *)dma_map->k_vaddr = dma_map->dma_addr; in genwqe_mmap()
470 pfn = virt_to_phys(dma_map->k_vaddr) >> PAGE_SHIFT; in genwqe_mmap()
483 __genwqe_add_mapping(cfile, dma_map); in genwqe_mmap()
488 __genwqe_free_consistent(cd, dma_map->size, in genwqe_mmap()
489 dma_map->k_vaddr, in genwqe_mmap()
490 dma_map->dma_addr); in genwqe_mmap()
492 kfree(dma_map); in genwqe_mmap()
778 struct dma_mapping *dma_map; in genwqe_pin_mem() local
788 dma_map = kzalloc(sizeof(struct dma_mapping), GFP_KERNEL); in genwqe_pin_mem()
789 if (dma_map == NULL) in genwqe_pin_mem()
792 genwqe_mapping_init(dma_map, GENWQE_MAPPING_SGL_PINNED); in genwqe_pin_mem()
793 rc = genwqe_user_vmap(cd, dma_map, (void *)map_addr, map_size, NULL); in genwqe_pin_mem()
797 kfree(dma_map); in genwqe_pin_mem()
801 genwqe_add_pin(cfile, dma_map); in genwqe_pin_mem()
808 struct dma_mapping *dma_map; in genwqe_unpin_mem() local
818 dma_map = genwqe_search_pin(cfile, map_addr, map_size, NULL); in genwqe_unpin_mem()
819 if (dma_map == NULL) in genwqe_unpin_mem()
822 genwqe_del_pin(cfile, dma_map); in genwqe_unpin_mem()
823 genwqe_user_vunmap(cd, dma_map, NULL); in genwqe_unpin_mem()
824 kfree(dma_map); in genwqe_unpin_mem()
836 struct dma_mapping *dma_map; in ddcb_cmd_cleanup() local
840 dma_map = &req->dma_mappings[i]; in ddcb_cmd_cleanup()
842 if (dma_mapping_used(dma_map)) { in ddcb_cmd_cleanup()
843 __genwqe_del_mapping(cfile, dma_map); in ddcb_cmd_cleanup()
844 genwqe_user_vunmap(cd, dma_map, req); in ddcb_cmd_cleanup()