]> Pileus Git - ~andy/linux/blobdiff - crypto/scatterwalk.c
Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel
[~andy/linux] / crypto / scatterwalk.c
index 297e19d13c4e6c34dd52688158266a1b502be518..3de89a424401c1918818145a3d27df627c99f7ef 100644 (file)
@@ -54,7 +54,8 @@ static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
                struct page *page;
 
                page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT);
-               flush_dcache_page(page);
+               if (!PageSlab(page))
+                       flush_dcache_page(page);
        }
 
        if (more) {
@@ -105,6 +106,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);