X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=crypto%2Fscatterwalk.c;h=9aeeb52004a5399d0a9b7a3484044b5de1e3083c;hb=ec38fa2b35f13e7fa1d676a5bc997d0df1b02574;hp=b9bbda0bb9f968efc4a728dd316952b7516f617b;hpb=786d3693f46579c7cd982e65de9f43eba94e4a57;p=linux-2.6-omap-h63xx.git diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index b9bbda0bb9f..9aeeb52004a 100644 --- a/crypto/scatterwalk.c +++ b/crypto/scatterwalk.c @@ -13,6 +13,8 @@ * any later version. * */ + +#include #include #include #include @@ -20,9 +22,6 @@ #include #include -#include "internal.h" -#include "scatterwalk.h" - static inline void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out) { void *src = out ? buf : sgdata; @@ -106,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); @@ -113,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);