git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nvidiafb: Fix reversed DDC port
[pandora-kernel.git]
/
crypto
/
scatterwalk.c
diff --git
a/crypto/scatterwalk.c
b/crypto/scatterwalk.c
index
35172d3
..
81afd17
100644
(file)
--- a/
crypto/scatterwalk.c
+++ b/
crypto/scatterwalk.c
@@
-59,8
+59,12
@@
EXPORT_SYMBOL_GPL(scatterwalk_map);
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
unsigned int more)
{
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
unsigned int more)
{
- if (out)
- flush_dcache_page(scatterwalk_page(walk));
+ if (out) {
+ struct page *page;
+
+ page = walk->sg->page + ((walk->offset - 1) >> PAGE_SHIFT);
+ flush_dcache_page(page);
+ }
if (more) {
walk->offset += PAGE_SIZE - 1;
if (more) {
walk->offset += PAGE_SIZE - 1;
@@
-91,6
+95,8
@@
void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
memcpy_dir(buf, vaddr, len_this_page, out);
scatterwalk_unmap(vaddr, out);
memcpy_dir(buf, vaddr, len_this_page, out);
scatterwalk_unmap(vaddr, out);
+ scatterwalk_advance(walk, len_this_page);
+
if (nbytes == len_this_page)
break;
if (nbytes == len_this_page)
break;
@@
-99,7
+105,5
@@
void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
scatterwalk_pagedone(walk, out, 1);
}
scatterwalk_pagedone(walk, out, 1);
}
-
- scatterwalk_advance(walk, nbytes);
}
EXPORT_SYMBOL_GPL(scatterwalk_copychunks);
}
EXPORT_SYMBOL_GPL(scatterwalk_copychunks);