diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2017-04-25 12:18:54 +0300 | 
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2017-05-18 13:19:48 +0800 | 
| commit | 15a9b363de232236a31922d5a928d1830bc42060 (patch) | |
| tree | 603ed99af9cf3eb40b5ac093e35f1c4deef2c2bb | |
| parent | 981a2e3e45c554611316b6eb28d00204586637b3 (diff) | |
crypto: sha512-mb - add some missing unlock on error
We recently added some new locking but missed the unlocks on these
error paths in sha512_ctx_mgr_submit().
Fixes: c459bd7beda0 ("crypto: sha512-mb - Protect sha512 mb ctx mgr access")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
| -rw-r--r-- | arch/x86/crypto/sha512-mb/sha512_mb.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/arch/x86/crypto/sha512-mb/sha512_mb.c b/arch/x86/crypto/sha512-mb/sha512_mb.c index 2dd3674b5a1e..458409b7568d 100644 --- a/arch/x86/crypto/sha512-mb/sha512_mb.c +++ b/arch/x86/crypto/sha512-mb/sha512_mb.c @@ -269,19 +269,19 @@ static struct sha512_hash_ctx  		 * LAST  		 */  		ctx->error = HASH_CTX_ERROR_INVALID_FLAGS; -		return ctx; +		goto unlock;  	}  	if (ctx->status & HASH_CTX_STS_PROCESSING) {  		/* Cannot submit to a currently processing job. */  		ctx->error = HASH_CTX_ERROR_ALREADY_PROCESSING; -		return ctx; +		goto unlock;  	}  	if ((ctx->status & HASH_CTX_STS_COMPLETE) && !(flags & HASH_FIRST)) {  		/* Cannot update a finished job. */  		ctx->error = HASH_CTX_ERROR_ALREADY_COMPLETED; -		return ctx; +		goto unlock;  	} @@ -363,6 +363,7 @@ static struct sha512_hash_ctx  	}  	ctx = sha512_ctx_mgr_resubmit(mgr, ctx); +unlock:  	spin_unlock_irqrestore(&cstate->work_lock, irqflags);  	return ctx;  } | 
