[SG] Update drivers to use sg helpers
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@@ -295,7 +295,7 @@ static int scsi_req_map_sg(struct request *rq, struct scatterlist *sgl,
|
||||
int i, err, nr_vecs = 0;
|
||||
|
||||
for_each_sg(sgl, sg, nsegs, i) {
|
||||
page = sg->page;
|
||||
page = sg_page(sg);
|
||||
off = sg->offset;
|
||||
len = sg->length;
|
||||
data_len += len;
|
||||
@@ -764,7 +764,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask)
|
||||
if (unlikely(!sgl))
|
||||
goto enomem;
|
||||
|
||||
memset(sgl, 0, sizeof(*sgl) * sgp->size);
|
||||
sg_init_table(sgl, sgp->size);
|
||||
|
||||
/*
|
||||
* first loop through, set initial index and return value
|
||||
@@ -780,6 +780,13 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask)
|
||||
if (prev)
|
||||
sg_chain(prev, SCSI_MAX_SG_SEGMENTS, sgl);
|
||||
|
||||
/*
|
||||
* if we have nothing left, mark the last segment as
|
||||
* end-of-list
|
||||
*/
|
||||
if (!left)
|
||||
sg_mark_end(sgl, this);
|
||||
|
||||
/*
|
||||
* don't allow subsequent mempool allocs to sleep, it would
|
||||
* violate the mempool principle.
|
||||
@@ -2353,7 +2360,7 @@ void *scsi_kmap_atomic_sg(struct scatterlist *sgl, int sg_count,
|
||||
*offset = *offset - len_complete + sg->offset;
|
||||
|
||||
/* Assumption: contiguous pages can be accessed as "page + i" */
|
||||
page = nth_page(sg->page, (*offset >> PAGE_SHIFT));
|
||||
page = nth_page(sg_page(sg), (*offset >> PAGE_SHIFT));
|
||||
*offset &= ~PAGE_MASK;
|
||||
|
||||
/* Bytes in this sg-entry from *offset to the end of the page */
|
||||
|
Reference in New Issue
Block a user