Lines Matching defs:mhp
43 static int iwch_finish_mem_reg(struct iwch_mr *mhp, u32 stag)
47 mhp->attr.state = 1;
48 mhp->attr.stag = stag;
50 mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
51 PDBG("%s mmid 0x%x mhp %p\n", __func__, mmid, mhp);
52 return insert_handle(mhp->rhp, &mhp->rhp->mmidr, mhp, mmid);
56 struct iwch_mr *mhp, int shift)
62 &stag, mhp->attr.pdid,
63 mhp->attr.perms,
64 mhp->attr.zbva,
65 mhp->attr.va_fbo,
66 mhp->attr.len,
68 mhp->attr.pbl_size, mhp->attr.pbl_addr))
71 ret = iwch_finish_mem_reg(mhp, stag);
73 cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
74 mhp->attr.pbl_addr);
79 struct iwch_mr *mhp,
87 if (npages > mhp->attr.pbl_size)
90 stag = mhp->attr.stag;
92 &stag, mhp->attr.pdid,
93 mhp->attr.perms,
94 mhp->attr.zbva,
95 mhp->attr.va_fbo,
96 mhp->attr.len,
98 mhp->attr.pbl_size, mhp->attr.pbl_addr))
101 ret = iwch_finish_mem_reg(mhp, stag);
103 cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
104 mhp->attr.pbl_addr);
109 int iwch_alloc_pbl(struct iwch_mr *mhp, int npages)
111 mhp->attr.pbl_addr = cxio_hal_pblpool_alloc(&mhp->rhp->rdev,
114 if (!mhp->attr.pbl_addr)
117 mhp->attr.pbl_size = npages;
122 void iwch_free_pbl(struct iwch_mr *mhp)
124 cxio_hal_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr,
125 mhp->attr.pbl_size << 3);
128 int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset)
130 return cxio_write_pbl(&mhp->rhp->rdev, pages,
131 mhp->attr.pbl_addr + (offset << 3), npages);