Lines Matching refs:sge

170 	struct qib_sge *sge = &ss->sge;
173 u32 len = sge->length;
177 if (len > sge->sge_length)
178 len = sge->sge_length;
180 memcpy(sge->vaddr, data, len);
181 sge->vaddr += len;
182 sge->length -= len;
183 sge->sge_length -= len;
184 if (sge->sge_length == 0) {
186 atomic_dec(&sge->mr->refcount);
188 *sge = *ss->sg_list++;
189 } else if (sge->length == 0 && sge->mr->lkey) {
190 if (++sge->n >= QIB_SEGSZ) {
191 if (++sge->m >= sge->mr->mapsz)
193 sge->n = 0;
195 sge->vaddr =
196 sge->mr->map[sge->m]->segs[sge->n].vaddr;
197 sge->length =
198 sge->mr->map[sge->m]->segs[sge->n].length;
212 struct qib_sge *sge = &ss->sge;
215 u32 len = sge->length;
219 if (len > sge->sge_length)
220 len = sge->sge_length;
222 sge->vaddr += len;
223 sge->length -= len;
224 sge->sge_length -= len;
225 if (sge->sge_length == 0) {
227 atomic_dec(&sge->mr->refcount);
229 *sge = *ss->sg_list++;
230 } else if (sge->length == 0 && sge->mr->lkey) {
231 if (++sge->n >= QIB_SEGSZ) {
232 if (++sge->m >= sge->mr->mapsz)
234 sge->n = 0;
236 sge->vaddr =
237 sge->mr->map[sge->m]->segs[sge->n].vaddr;
238 sge->length =
239 sge->mr->map[sge->m]->segs[sge->n].length;
253 struct qib_sge sge = ss->sge;
258 u32 len = sge.length;
262 if (len > sge.sge_length)
263 len = sge.sge_length;
265 if (((long) sge.vaddr & (sizeof(u32) - 1)) ||
271 sge.vaddr += len;
272 sge.length -= len;
273 sge.sge_length -= len;
274 if (sge.sge_length == 0) {
276 sge = *sg_list++;
277 } else if (sge.length == 0 && sge.mr->lkey) {
278 if (++sge.n >= QIB_SEGSZ) {
279 if (++sge.m >= sge.mr->mapsz)
281 sge.n = 0;
283 sge.vaddr =
284 sge.mr->map[sge.m]->segs[sge.n].vaddr;
285 sge.length =
286 sge.mr->map[sge.m]->segs[sge.n].length;
298 struct qib_sge *sge = &ss->sge;
301 u32 len = sge->length;
305 if (len > sge->sge_length)
306 len = sge->sge_length;
308 memcpy(data, sge->vaddr, len);
309 sge->vaddr += len;
310 sge->length -= len;
311 sge->sge_length -= len;
312 if (sge->sge_length == 0) {
314 *sge = *ss->sg_list++;
315 } else if (sge->length == 0 && sge->mr->lkey) {
316 if (++sge->n >= QIB_SEGSZ) {
317 if (++sge->m >= sge->mr->mapsz)
319 sge->n = 0;
321 sge->vaddr =
322 sge->mr->map[sge->m]->segs[sge->n].vaddr;
323 sge->length =
324 sge->mr->map[sge->m]->segs[sge->n].length;
436 struct qib_sge *sge = &wqe->sg_list[--j];
438 atomic_dec(&sge->mr->refcount);
725 struct qib_sge *sge = &ss->sge;
727 sge->vaddr += length;
728 sge->length -= length;
729 sge->sge_length -= length;
730 if (sge->sge_length == 0) {
732 *sge = *ss->sg_list++;
733 } else if (sge->length == 0 && sge->mr->lkey) {
734 if (++sge->n >= QIB_SEGSZ) {
735 if (++sge->m >= sge->mr->mapsz)
737 sge->n = 0;
739 sge->vaddr = sge->mr->map[sge->m]->segs[sge->n].vaddr;
740 sge->length = sge->mr->map[sge->m]->segs[sge->n].length;
788 u32 len = ss->sge.length;
793 if (len > ss->sge.sge_length)
794 len = ss->sge.sge_length;
797 off = (unsigned long)ss->sge.vaddr & (sizeof(u32) - 1);
799 u32 *addr = (u32 *)((unsigned long)ss->sge.vaddr &
830 u32 *addr = (u32 *) ss->sge.vaddr;
883 qib_pio_copy(piobuf, ss->sge.vaddr, w - 1);
885 last = ((u32 *) ss->sge.vaddr)[w - 1];
890 qib_pio_copy(piobuf, ss->sge.vaddr, w);
895 u32 v = ((u32 *) ss->sge.vaddr)[w];
1313 if (likely(ss->num_sge == 1 && len <= ss->sge.length &&
1314 !((unsigned long)ss->sge.vaddr & (sizeof(u32) - 1)))) {
1315 u32 *addr = (u32 *) ss->sge.vaddr;