[CRYPTO] cryptd: Fix EINPROGRESS notification context

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2008-05-07 13:40:46
Subsystem: crypto api, the rest · Maintainers: Herbert Xu, "David S. Miller", Linus Torvalds

Hi:

While merging the ahash patch I found this buglet in cryptd.

commit 34fe02eec1cf26f67070588a63252ca7a38c55c2
Author: Herbert Xu [off-list ref]
Date:   Wed May 7 21:10:13 2008 +0800

    [CRYPTO] cryptd: Fix EINPROGRESS notification context
    
    The EINPROGRESS notifications should be done just like the final
    call-backs, i.e., with BH off.  This patch fixes the call in cryptd
    since previously it was called with BH on.
    
    Signed-off-by: Herbert Xu [off-list ref]
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index b150de5..f38e147 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -82,10 +82,8 @@ static void cryptd_blkcipher_crypt(struct ablkcipher_request *req,
 
 	rctx = ablkcipher_request_ctx(req);
 
-	if (unlikely(err == -EINPROGRESS)) {
-		rctx->complete(&req->base, err);
-		return;
-	}
+	if (unlikely(err == -EINPROGRESS))
+		goto out;
 
 	desc.tfm = child;
 	desc.info = req->info;
@@ -95,8 +93,9 @@ static void cryptd_blkcipher_crypt(struct ablkcipher_request *req,
 
 	req->base.complete = rctx->complete;
 
+out:
 	local_bh_disable();
-	req->base.complete(&req->base, err);
+	rctx->complete(&req->base, err);
 	local_bh_enable();
 }
Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help