Lines Matching defs:sge
518 * rvt_ss_has_lkey - is mr in sge tests
519 * @ss - the sge state
523 * sge state.
533 rval = rvt_mr_has_lkey(ss->sge.mr, lkey);
716 * @sge: SGE to check
720 * Return: true if isge is adjacent to last sge
723 struct ib_sge *sge)
725 if (last_sge && sge->lkey == last_sge->mr->lkey &&
726 ((uint64_t)(last_sge->vaddr + last_sge->length) == sge->addr)) {
727 if (sge->lkey) {
728 if (unlikely((sge->addr - last_sge->mr->user_base +
729 sge->length > last_sge->mr->length)))
732 last_sge->length += sge->length;
734 last_sge->sge_length += sge->length;
735 trace_rvt_sge_adjacent(last_sge, sge);
747 * @sge: SGE to check
753 * Increments the reference count when a new sge is stored.
759 struct ib_sge *sge, int acc)
769 if (sge->lkey == 0) {
774 if (rvt_sge_adjacent(last_sge, sge))
784 isge->vaddr = (void *)sge->addr;
785 isge->length = sge->length;
786 isge->sge_length = sge->length;
791 if (rvt_sge_adjacent(last_sge, sge))
794 mr = rcu_dereference(rkt->table[sge->lkey >> rkt->shift]);
802 mr->lkey != sge->lkey || mr->pd != &pd->ibpd))
805 off = sge->addr - mr->user_base;
806 if (unlikely(sge->addr < mr->user_base ||
807 off + sge->length > mr->length ||
840 isge->sge_length = sge->length;
844 trace_rvt_sge_new(isge, sge);
857 * @sge: SGE state
867 int rvt_rkey_ok(struct rvt_qp *qp, struct rvt_sge *sge,
893 sge->mr = mr;
894 sge->vaddr = (void *)vaddr;
895 sge->length = len;
896 sge->sge_length = len;
897 sge->m = 0;
898 sge->n = 0;
944 sge->mr = mr;
945 sge->vaddr = mr->map[m]->segs[n].vaddr + off;
946 sge->length = mr->map[m]->segs[n].length - off;
947 sge->sge_length = len;
948 sge->m = m;
949 sge->n = n;