aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/mv_cesa.c
diff options
context:
space:
mode:
authorPhil Sutter <phil.sutter@viprinet.com>2011-05-05 09:29:06 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2011-05-11 01:06:22 -0400
commit6ef84509f3d439ed2d43ea40080643efec37f54f (patch)
tree9eb8760dc6ba6f9dd5a94238ca237962aa806e8b /drivers/crypto/mv_cesa.c
parent7759995c75ae0cbd4c861582908449f6b6208e7a (diff)
crypto: mv_cesa - make count_sgs() null-pointer proof
This also makes the dummy scatterlist in mv_hash_final() needless, so drop it. XXX: should this routine be made pulicly available? There are probably other users with their own implementations. Signed-off-by: Phil Sutter <phil.sutter@viprinet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/mv_cesa.c')
-rw-r--r--drivers/crypto/mv_cesa.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index d704ed0e7d3d..3cf303ee3fe3 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
@@ -133,7 +133,6 @@ struct mv_req_hash_ctx {
133 int extra_bytes; /* unprocessed bytes in buffer */ 133 int extra_bytes; /* unprocessed bytes in buffer */
134 enum hash_op op; 134 enum hash_op op;
135 int count_add; 135 int count_add;
136 struct scatterlist dummysg;
137}; 136};
138 137
139static void compute_aes_dec_key(struct mv_ctx *ctx) 138static void compute_aes_dec_key(struct mv_ctx *ctx)
@@ -482,7 +481,7 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
482 int i = 0; 481 int i = 0;
483 size_t cur_len; 482 size_t cur_len;
484 483
485 while (1) { 484 while (sl) {
486 cur_len = sl[i].length; 485 cur_len = sl[i].length;
487 ++i; 486 ++i;
488 if (total_bytes > cur_len) 487 if (total_bytes > cur_len)
@@ -711,10 +710,7 @@ static int mv_hash_update(struct ahash_request *req)
711static int mv_hash_final(struct ahash_request *req) 710static int mv_hash_final(struct ahash_request *req)
712{ 711{
713 struct mv_req_hash_ctx *ctx = ahash_request_ctx(req); 712 struct mv_req_hash_ctx *ctx = ahash_request_ctx(req);
714 /* dummy buffer of 4 bytes */ 713
715 sg_init_one(&ctx->dummysg, ctx->buffer, 4);
716 /* I think I'm allowed to do that... */
717 ahash_request_set_crypt(req, &ctx->dummysg, req->result, 0);
718 mv_update_hash_req_ctx(ctx, 1, 0); 714 mv_update_hash_req_ctx(ctx, 1, 0);
719 return mv_handle_req(&req->base); 715 return mv_handle_req(&req->base);
720} 716}