X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=crypto%2Fscatterwalk.c;h=9aeeb52004a5399d0a9b7a3484044b5de1e3083c;hb=41d1a3d31d097a31380b83eea0ec10ea1d040376;hp=12d19019e178ebb18a21fa9a61cc4a9433fa3cf1;hpb=42c271c6c538857cb13c5ead5184d264d745f675;p=linux-2.6-omap-h63xx.git diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index 12d19019e17..9aeeb52004a 100644 --- a/crypto/scatterwalk.c +++ b/crypto/scatterwalk.c @@ -61,7 +61,7 @@ static void scatterwalk_pagedone(struct scatter_walk *walk, int out, walk->offset += PAGE_SIZE - 1; walk->offset &= PAGE_MASK; if (walk->offset >= walk->sg->offset + walk->sg->length) - scatterwalk_start(walk, sg_next(walk->sg)); + scatterwalk_start(walk, scatterwalk_sg_next(walk->sg)); } } @@ -105,6 +105,9 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg, struct scatter_walk walk; unsigned int offset = 0; + if (!nbytes) + return; + for (;;) { scatterwalk_start(&walk, sg); @@ -112,7 +115,7 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg, break; offset += sg->length; - sg = sg_next(sg); + sg = scatterwalk_sg_next(sg); } scatterwalk_advance(&walk, start - offset);