[CRYPTO] api: scatterwalk_copychunks() fails to advance through scatterlist
[linux-drm-fsl-dcu.git] / crypto / scatterwalk.c
index 35172d3f043b47f02ef5c8e20a0ffaf7976bac5b..a66423121773a8f2419e359b3812dd641640fdd3 100644 (file)
@@ -91,6 +91,8 @@ void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
                memcpy_dir(buf, vaddr, len_this_page, out);
                scatterwalk_unmap(vaddr, out);
 
+               scatterwalk_advance(walk, nbytes);
+
                if (nbytes == len_this_page)
                        break;
 
@@ -99,7 +101,5 @@ void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
 
                scatterwalk_pagedone(walk, out, 1);
        }
-
-       scatterwalk_advance(walk, nbytes);
 }
 EXPORT_SYMBOL_GPL(scatterwalk_copychunks);