Lines Matching defs:mhp
79 static int iwch_finish_mem_reg(struct iwch_mr *mhp, u32 stag)
83 mhp->attr.state = 1;
84 mhp->attr.stag = stag;
86 mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
87 CTR3(KTR_IW_CXGB, "%s mmid 0x%x mhp %p", __func__, mmid, mhp);
88 return insert_handle(mhp->rhp, &mhp->rhp->mmidr, mhp, mmid);
92 struct iwch_mr *mhp,
99 &stag, mhp->attr.pdid,
100 mhp->attr.perms,
101 mhp->attr.zbva,
102 mhp->attr.va_fbo,
103 mhp->attr.len,
105 mhp->attr.pbl_size, mhp->attr.pbl_addr))
108 ret = iwch_finish_mem_reg(mhp, stag);
110 cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
111 mhp->attr.pbl_addr);
116 struct iwch_mr *mhp,
124 if (npages > mhp->attr.pbl_size)
127 stag = mhp->attr.stag;
129 &stag, mhp->attr.pdid,
130 mhp->attr.perms,
131 mhp->attr.zbva,
132 mhp->attr.va_fbo,
133 mhp->attr.len,
135 mhp->attr.pbl_size, mhp->attr.pbl_addr))
138 ret = iwch_finish_mem_reg(mhp, stag);
140 cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
141 mhp->attr.pbl_addr);
145 int iwch_alloc_pbl(struct iwch_mr *mhp, int npages)
147 mhp->attr.pbl_addr = cxio_hal_pblpool_alloc(&mhp->rhp->rdev,
150 if (!mhp->attr.pbl_addr)
153 mhp->attr.pbl_size = npages;
158 void iwch_free_pbl(struct iwch_mr *mhp)
160 cxio_hal_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr,
161 mhp->attr.pbl_size << 3);
164 int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset)
166 return cxio_write_pbl(&mhp->rhp->rdev, pages,
167 mhp->attr.pbl_addr + (offset << 3), npages);