git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SPARC: fix duplicate declaration
[safe/jmp/linux-2.6]
/
crypto
/
scatterwalk.c
diff --git
a/crypto/scatterwalk.c
b/crypto/scatterwalk.c
index
206c39a
..
3de89a4
100644
(file)
--- a/
crypto/scatterwalk.c
+++ b/
crypto/scatterwalk.c
@@
-13,6
+13,8
@@
* any later version.
*
*/
* any later version.
*
*/
+
+#include <crypto/scatterwalk.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/module.h>
@@
-20,9
+22,6
@@
#include <linux/highmem.h>
#include <linux/scatterlist.h>
#include <linux/highmem.h>
#include <linux/scatterlist.h>
-#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;
static inline void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out)
{
void *src = out ? buf : sgdata;
@@
-55,14
+54,15
@@
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
struct page *page;
page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT);
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) {
walk->offset += PAGE_SIZE - 1;
walk->offset &= PAGE_MASK;
if (walk->offset >= walk->sg->offset + walk->sg->length)
}
if (more) {
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, s
catterwalk_s
g_next(walk->sg));
}
}
}
}
@@
-106,6
+106,9
@@
void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
struct scatter_walk walk;
unsigned int offset = 0;
struct scatter_walk walk;
unsigned int offset = 0;
+ if (!nbytes)
+ return;
+
for (;;) {
scatterwalk_start(&walk, sg);
for (;;) {
scatterwalk_start(&walk, sg);
@@
-113,7
+116,7
@@
void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
break;
offset += sg->length;
break;
offset += sg->length;
- sg = sg_next(sg);
+ sg = s
catterwalk_s
g_next(sg);
}
scatterwalk_advance(&walk, start - offset);
}
scatterwalk_advance(&walk, start - offset);