uiomr 86 drivers/infiniband/hw/usnic/usnic_uiom.c int dmasync, struct usnic_uiom_reg *uiomr) uiomr 88 drivers/infiniband/hw/usnic/usnic_uiom.c struct list_head *chunk_list = &uiomr->chunk_list; uiomr 125 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->owning_mm = mm = current->mm; uiomr 188 drivers/infiniband/hw/usnic/usnic_uiom.c mmgrab(uiomr->owning_mm); uiomr 215 drivers/infiniband/hw/usnic/usnic_uiom.c struct usnic_uiom_reg *uiomr, uiomr 224 drivers/infiniband/hw/usnic/usnic_uiom.c npages = PAGE_ALIGN(uiomr->length + uiomr->offset) >> PAGE_SHIFT; uiomr 225 drivers/infiniband/hw/usnic/usnic_uiom.c vpn_start = (uiomr->va & PAGE_MASK) >> PAGE_SHIFT; uiomr 240 drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_put_pages(&uiomr->chunk_list, dirty & writable); uiomr 245 drivers/infiniband/hw/usnic/usnic_uiom.c struct usnic_uiom_reg *uiomr) uiomr 255 drivers/infiniband/hw/usnic/usnic_uiom.c struct usnic_uiom_pd *pd = uiomr->pd; uiomr 256 drivers/infiniband/hw/usnic/usnic_uiom.c long int va = uiomr->va & PAGE_MASK; uiomr 259 drivers/infiniband/hw/usnic/usnic_uiom.c flags |= (uiomr->writable) ? IOMMU_WRITE : 0; uiomr 260 drivers/infiniband/hw/usnic/usnic_uiom.c chunk = list_first_entry(&uiomr->chunk_list, struct usnic_uiom_chunk, uiomr 338 drivers/infiniband/hw/usnic/usnic_uiom.c struct usnic_uiom_reg *uiomr; uiomr 359 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr = kmalloc(sizeof(*uiomr), GFP_KERNEL); uiomr 360 drivers/infiniband/hw/usnic/usnic_uiom.c if (!uiomr) uiomr 363 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->va = va_base; uiomr 364 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->offset = offset; uiomr 365 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->length = size; uiomr 366 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->writable = writable; uiomr 367 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr->pd = pd; uiomr 370 drivers/infiniband/hw/usnic/usnic_uiom.c uiomr); uiomr 389 drivers/infiniband/hw/usnic/usnic_uiom.c err = usnic_uiom_map_sorted_intervals(&sorted_diff_intervals, uiomr); uiomr 408 drivers/infiniband/hw/usnic/usnic_uiom.c return uiomr; uiomr 415 drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_put_pages(&uiomr->chunk_list, 0); uiomr 417 drivers/infiniband/hw/usnic/usnic_uiom.c mmdrop(uiomr->owning_mm); uiomr 419 drivers/infiniband/hw/usnic/usnic_uiom.c kfree(uiomr); uiomr 423 drivers/infiniband/hw/usnic/usnic_uiom.c static void __usnic_uiom_release_tail(struct usnic_uiom_reg *uiomr) uiomr 425 drivers/infiniband/hw/usnic/usnic_uiom.c mmdrop(uiomr->owning_mm); uiomr 426 drivers/infiniband/hw/usnic/usnic_uiom.c kfree(uiomr); uiomr 429 drivers/infiniband/hw/usnic/usnic_uiom.c static inline size_t usnic_uiom_num_pages(struct usnic_uiom_reg *uiomr) uiomr 431 drivers/infiniband/hw/usnic/usnic_uiom.c return PAGE_ALIGN(uiomr->length + uiomr->offset) >> PAGE_SHIFT; uiomr 434 drivers/infiniband/hw/usnic/usnic_uiom.c void usnic_uiom_reg_release(struct usnic_uiom_reg *uiomr) uiomr 436 drivers/infiniband/hw/usnic/usnic_uiom.c __usnic_uiom_reg_release(uiomr->pd, uiomr, 1); uiomr 438 drivers/infiniband/hw/usnic/usnic_uiom.c atomic64_sub(usnic_uiom_num_pages(uiomr), &uiomr->owning_mm->pinned_vm); uiomr 439 drivers/infiniband/hw/usnic/usnic_uiom.c __usnic_uiom_release_tail(uiomr); uiomr 93 drivers/infiniband/hw/usnic/usnic_uiom.h void usnic_uiom_reg_release(struct usnic_uiom_reg *uiomr);