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
Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git]
/
crypto
/
scatterwalk.c
diff --git
a/crypto/scatterwalk.c
b/crypto/scatterwalk.c
index
3052f65
..
9aeeb52
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;
@@
-54,7
+53,7
@@
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
if (out) {
struct page *page;
if (out) {
struct page *page;
- page =
walk->sg->page
+ ((walk->offset - 1) >> PAGE_SHIFT);
+ page =
sg_page(walk->sg)
+ ((walk->offset - 1) >> PAGE_SHIFT);
flush_dcache_page(page);
}
flush_dcache_page(page);
}
@@
-62,7
+61,7
@@
static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
walk->offset += PAGE_SIZE - 1;
walk->offset &= PAGE_MASK;
if (walk->offset >= walk->sg->offset + walk->sg->length)
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
+105,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
+115,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);