Lines Matching defs:mr

433 		   u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
448 mr->ibmr.rkey = mr->ibmr.lkey = hw_index_to_key(dev, key);
467 if (!mr->mtt)
479 if (mr->mtt)
482 mr->mtt->first_seg * dev->limits.mtt_seg_size);
485 mthca_dbg(dev, "Dumping MPT entry %08x:\n", mr->ibmr.lkey);
523 u32 access, struct mthca_mr *mr)
525 mr->mtt = NULL;
526 return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
532 u32 access, struct mthca_mr *mr)
536 mr->mtt = mthca_alloc_mtt(dev, list_len);
537 if (IS_ERR(mr->mtt))
538 return PTR_ERR(mr->mtt);
540 err = mthca_write_mtt(dev, mr->mtt, 0, buffer_list, list_len);
542 mthca_free_mtt(dev, mr->mtt);
547 total_size, access, mr);
549 mthca_free_mtt(dev, mr->mtt);
554 /* Free mr or fmr */
563 void mthca_free_mr(struct mthca_dev *dev, struct mthca_mr *mr)
569 key_to_hw_index(dev, mr->ibmr.lkey) &
578 mthca_free_region(dev, mr->ibmr.lkey);
579 mthca_free_mtt(dev, mr->mtt);
583 u32 access, struct mthca_fmr *mr)
590 int list_len = mr->attr.max_pages;
594 if (mr->attr.page_shift < 12 || mr->attr.page_shift >= 32)
599 mr->attr.max_pages * sizeof *mr->mem.arbel.mtts > PAGE_SIZE)
602 mr->maps = 0;
610 mr->ibmr.rkey = mr->ibmr.lkey = hw_index_to_key(dev, key);
617 mr->mem.arbel.mpt = mthca_table_find(dev->mr_table.mpt_table, key, NULL);
618 BUG_ON(!mr->mem.arbel.mpt);
620 mr->mem.tavor.mpt = dev->mr_table.tavor_fmr.mpt_base +
621 sizeof *(mr->mem.tavor.mpt) * idx;
623 mr->mtt = __mthca_alloc_mtt(dev, list_len, dev->mr_table.fmr_mtt_buddy);
624 if (IS_ERR(mr->mtt)) {
625 err = PTR_ERR(mr->mtt);
629 mtt_seg = mr->mtt->first_seg * dev->limits.mtt_seg_size;
632 mr->mem.arbel.mtts = mthca_table_find(dev->mr_table.mtt_table,
633 mr->mtt->first_seg,
634 &mr->mem.arbel.dma_handle);
635 BUG_ON(!mr->mem.arbel.mtts);
637 mr->mem.tavor.mtts = dev->mr_table.tavor_fmr.mtt_base + mtt_seg;
652 mpt_entry->page_size = cpu_to_be32(mr->attr.page_shift - 12);
660 mthca_dbg(dev, "Dumping MPT entry %08x:\n", mr->ibmr.lkey);
691 mthca_free_mtt(dev, mr->mtt);