IB/{hfi1, qib, rvt} Cleanup open coded sge usage
Several locations for manipulating sges use an open coded sequence that is covered by helper functions. Use the appropriate helper functions. Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

zatwierdzone przez
Doug Ledford

rodzic
87fc34b575
commit
db421a5499
@@ -565,13 +565,8 @@ retry:
|
||||
sge = &ss->sge;
|
||||
while (dwords) {
|
||||
u32 dw;
|
||||
u32 len;
|
||||
u32 len = rvt_get_sge_length(sge, dwords << 2);
|
||||
|
||||
len = dwords << 2;
|
||||
if (len > sge->length)
|
||||
len = sge->length;
|
||||
if (len > sge->sge_length)
|
||||
len = sge->sge_length;
|
||||
dw = (len + 3) >> 2;
|
||||
addr = dma_map_single(&ppd->dd->pcidev->dev, sge->vaddr,
|
||||
dw << 2, DMA_TO_DEVICE);
|
||||
@@ -594,24 +589,7 @@ retry:
|
||||
descqp = &ppd->sdma_descq[0].qw[0];
|
||||
++ppd->sdma_generation;
|
||||
}
|
||||
sge->vaddr += len;
|
||||
sge->length -= len;
|
||||
sge->sge_length -= len;
|
||||
if (sge->sge_length == 0) {
|
||||
if (--ss->num_sge)
|
||||
*sge = *ss->sg_list++;
|
||||
} else if (sge->length == 0 && sge->mr->lkey) {
|
||||
if (++sge->n >= RVT_SEGSZ) {
|
||||
if (++sge->m >= sge->mr->mapsz)
|
||||
break;
|
||||
sge->n = 0;
|
||||
}
|
||||
sge->vaddr =
|
||||
sge->mr->map[sge->m]->segs[sge->n].vaddr;
|
||||
sge->length =
|
||||
sge->mr->map[sge->m]->segs[sge->n].length;
|
||||
}
|
||||
|
||||
rvt_update_sge(ss, len, false);
|
||||
dwoffset += dw;
|
||||
dwords -= dw;
|
||||
}
|
||||
|
Reference in New Issue
Block a user