aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/cryptd.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index b150de562057..f38e1473b724 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -82,10 +82,8 @@ static void cryptd_blkcipher_crypt(struct ablkcipher_request *req,
82 82
83 rctx = ablkcipher_request_ctx(req); 83 rctx = ablkcipher_request_ctx(req);
84 84
85 if (unlikely(err == -EINPROGRESS)) { 85 if (unlikely(err == -EINPROGRESS))
86 rctx->complete(&req->base, err); 86 goto out;
87 return;
88 }
89 87
90 desc.tfm = child; 88 desc.tfm = child;
91 desc.info = req->info; 89 desc.info = req->info;
@@ -95,8 +93,9 @@ static void cryptd_blkcipher_crypt(struct ablkcipher_request *req,
95 93
96 req->base.complete = rctx->complete; 94 req->base.complete = rctx->complete;
97 95
96out:
98 local_bh_disable(); 97 local_bh_disable();
99 req->base.complete(&req->base, err); 98 rctx->complete(&req->base, err);
100 local_bh_enable(); 99 local_bh_enable();
101} 100}
102 101