Lines Matching refs:mr
47 int ipath_alloc_lkey(struct ipath_lkey_table *rkt, struct ipath_mregion *mr) in ipath_alloc_lkey() argument
75 mr->lkey = (r << (32 - ib_ipath_lkey_table_size)) | in ipath_alloc_lkey()
78 if (mr->lkey == 0) { in ipath_alloc_lkey()
79 mr->lkey |= 1 << 8; in ipath_alloc_lkey()
82 rkt->table[r] = mr; in ipath_alloc_lkey()
125 struct ipath_mregion *mr; in ipath_lkey_ok() local
142 isge->mr = NULL; in ipath_lkey_ok()
149 mr = rkt->table[(sge->lkey >> (32 - ib_ipath_lkey_table_size))]; in ipath_lkey_ok()
150 if (unlikely(mr == NULL || mr->lkey != sge->lkey || in ipath_lkey_ok()
151 qp->ibqp.pd != mr->pd)) { in ipath_lkey_ok()
156 off = sge->addr - mr->user_base; in ipath_lkey_ok()
157 if (unlikely(sge->addr < mr->user_base || in ipath_lkey_ok()
158 off + sge->length > mr->length || in ipath_lkey_ok()
159 (mr->access_flags & acc) != acc)) { in ipath_lkey_ok()
164 off += mr->offset; in ipath_lkey_ok()
167 while (off >= mr->map[m]->segs[n].length) { in ipath_lkey_ok()
168 off -= mr->map[m]->segs[n].length; in ipath_lkey_ok()
175 isge->mr = mr; in ipath_lkey_ok()
176 isge->vaddr = mr->map[m]->segs[n].vaddr + off; in ipath_lkey_ok()
177 isge->length = mr->map[m]->segs[n].length - off; in ipath_lkey_ok()
205 struct ipath_mregion *mr; in ipath_rkey_ok() local
222 sge->mr = NULL; in ipath_rkey_ok()
232 mr = rkt->table[(rkey >> (32 - ib_ipath_lkey_table_size))]; in ipath_rkey_ok()
233 if (unlikely(mr == NULL || mr->lkey != rkey || in ipath_rkey_ok()
234 qp->ibqp.pd != mr->pd)) { in ipath_rkey_ok()
239 off = vaddr - mr->iova; in ipath_rkey_ok()
240 if (unlikely(vaddr < mr->iova || off + len > mr->length || in ipath_rkey_ok()
241 (mr->access_flags & acc) == 0)) { in ipath_rkey_ok()
246 off += mr->offset; in ipath_rkey_ok()
249 while (off >= mr->map[m]->segs[n].length) { in ipath_rkey_ok()
250 off -= mr->map[m]->segs[n].length; in ipath_rkey_ok()
257 sge->mr = mr; in ipath_rkey_ok()
258 sge->vaddr = mr->map[m]->segs[n].vaddr + off; in ipath_rkey_ok()
259 sge->length = mr->map[m]->segs[n].length - off; in ipath_rkey_ok()