From: Tom Lendacky <thomas.lendacky@amd.com>
Date: Mon, 24 Feb 2014 14:42:08 +0000 (-0600)
Subject: crypto: ccp - Invoke context callback when there is a backlog error
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=950b10bae656d7edf5e2047bf0c9205980f49f2c;p=linux.git

crypto: ccp - Invoke context callback when there is a backlog error

Invoke the callback routine associated with the crypto context
if an error is encountered sending the command to the CCP during
backlog processing.  This is needed to free any resources used
by the command.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---

diff --git a/drivers/crypto/ccp/ccp-crypto-main.c b/drivers/crypto/ccp/ccp-crypto-main.c
index 9d30d6fbfd3d3..7d98635c2c5e2 100644
--- a/drivers/crypto/ccp/ccp-crypto-main.c
+++ b/drivers/crypto/ccp/ccp-crypto-main.c
@@ -183,6 +183,9 @@ static void ccp_crypto_complete(void *data, int err)
 			break;
 
 		/* Error occurred, report it and get the next entry */
+		ctx = crypto_tfm_ctx(held->req->tfm);
+		if (ctx->complete)
+			ret = ctx->complete(held->req, ret);
 		held->req->complete(held->req, ret);
 
 		next = ccp_crypto_cmd_complete(held, &backlog);