summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTom Lendacky <thomas.lendacky@amd.com>2014-02-24 15:42:08 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2014-02-26 22:57:00 +0100
commit950b10bae656d7edf5e2047bf0c9205980f49f2c (patch)
treedfacda484d4c76885e129bec9254ed5da892515d /drivers
parentcrypto: ccp - Prevent a possible lost CCP command request (diff)
downloadlinux-950b10bae656d7edf5e2047bf0c9205980f49f2c.tar.xz
linux-950b10bae656d7edf5e2047bf0c9205980f49f2c.zip
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/crypto/ccp/ccp-crypto-main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/crypto/ccp/ccp-crypto-main.c b/drivers/crypto/ccp/ccp-crypto-main.c
index 9d30d6fbfd3d..7d98635c2c5e 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);