aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-05-07 10:32:28 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2008-07-10 08:35:11 -0400
commit94eaa1bd7ca67e8f57919da96cbb41c215ef20cb (patch)
tree62aa9f538cc928e090baf714b75b0fa6125c9991 /drivers/crypto
parent9e70a408ad66846bc98dc026efe0384ef68373fc (diff)
[HIFN]: Handle ablkcipher_walk errors
ablkcipher_walk may return a negative error value, handle this properly instead of treating it as a huge number of scatter-gather elements. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/hifn_795x.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index cce6e6f1baa5..4e89cd8f664f 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -1602,7 +1602,10 @@ static int hifn_setup_session(struct ablkcipher_request *req)
1602 idx = 0; 1602 idx = 0;
1603 1603
1604 sg_num = ablkcipher_walk(req, &ctx->walk); 1604 sg_num = ablkcipher_walk(req, &ctx->walk);
1605 1605 if (sg_num < 0) {
1606 err = sg_num;
1607 goto err_out_exit;
1608 }
1606 atomic_set(&ctx->sg_num, sg_num); 1609 atomic_set(&ctx->sg_num, sg_num);
1607 1610
1608 spin_lock_irqsave(&dev->lock, flags); 1611 spin_lock_irqsave(&dev->lock, flags);