summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-12-05 20:59:25 +1100
committerHerbert Xu <herbert@gondor.apana.org.au>2008-01-11 08:16:33 +1100
commitcf51b44c8b86c241584aefaa1f612cbe8f75123f (patch)
treedb83ddc0277d6d69190516f40675670cd9b46526
parent35e87430ba6ed71cee3f14210ae5301e9a7cc49c (diff)
downloadlinux-crypto-cf51b44c8b86c241584aefaa1f612cbe8f75123f.tar.gz
linux-crypto-cf51b44c8b86c241584aefaa1f612cbe8f75123f.zip
[CRYPTO] scatterwalk: Restore custom sg chaining for now
Unfortunately the generic chaining hasn't been ported to all architectures yet, and notably not s390. So this patch restores the chainging that we've been using previously which does work everywhere. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--crypto/digest.c2
-rw-r--r--crypto/gcm.c2
-rw-r--r--crypto/hmac.c3
-rw-r--r--crypto/scatterwalk.c4
4 files changed, 6 insertions, 5 deletions
diff --git a/crypto/digest.c b/crypto/digest.c
index 52845f53..6fd43bdd 100644
--- a/crypto/digest.c
+++ b/crypto/digest.c
@@ -75,7 +75,7 @@ static int update2(struct hash_desc *desc,
if (!nbytes)
break;
- sg = sg_next(sg);
+ sg = scatterwalk_sg_next(sg);
}
return 0;
diff --git a/crypto/gcm.c b/crypto/gcm.c
index 27483f36..502da929 100644
--- a/crypto/gcm.c
+++ b/crypto/gcm.c
@@ -100,7 +100,7 @@ static void crypto_gcm_ghash_update_sg(struct crypto_gcm_ghash_ctx *ctx,
n = scatterwalk_clamp(&walk, len);
if (!n) {
- scatterwalk_start(&walk, sg_next(walk.sg));
+ scatterwalk_start(&walk, scatterwalk_sg_next(walk.sg));
n = scatterwalk_clamp(&walk, len);
}
diff --git a/crypto/hmac.c b/crypto/hmac.c
index 34c3706d..a1d016a5 100644
--- a/crypto/hmac.c
+++ b/crypto/hmac.c
@@ -17,6 +17,7 @@
*/
#include <crypto/algapi.h>
+#include <crypto/scatterwalk.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/kernel.h>
@@ -160,7 +161,7 @@ static int hmac_digest(struct hash_desc *pdesc, struct scatterlist *sg,
sg_init_table(sg1, 2);
sg_set_buf(sg1, ipad, bs);
- sg_chain(sg1, 2, sg);
+ scatterwalk_sg_chain(sg1, 2, sg);
sg_init_table(sg2, 1);
sg_set_buf(sg2, opad, bs + ds);
diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
index 12d19019..297e19d1 100644
--- a/crypto/scatterwalk.c
+++ b/crypto/scatterwalk.c
@@ -61,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)
- scatterwalk_start(walk, sg_next(walk->sg));
+ scatterwalk_start(walk, scatterwalk_sg_next(walk->sg));
}
}
@@ -112,7 +112,7 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
break;
offset += sg->length;
- sg = sg_next(sg);
+ sg = scatterwalk_sg_next(sg);
}
scatterwalk_advance(&walk, start - offset);