crypto: ccp - Prevent a possible lost CCP command request
authorTom Lendacky <thomas.lendacky@amd.com>
Mon, 24 Feb 2014 14:42:02 +0000 (08:42 -0600)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 26 Feb 2014 21:57:00 +0000 (05:57 +0800)
If a CCP command has been queued for processing at the
crypto layer then, when dequeueing it for processing, the
"can backlog" flag must be set so that the request isn't
lost if the CCP backlog queue limit is reached.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccp/ccp-crypto-main.c

index 010fded5d46ba32184bc031333a4333a820e8781..9d30d6fbfd3d3b2708f3469a2f0d73ef6fb491ad 100644 (file)
@@ -174,6 +174,10 @@ static void ccp_crypto_complete(void *data, int err)
 
        /* Submit the next cmd */
        while (held) {
+               /* Since we have already queued the cmd, we must indicate that
+                * we can backlog so as not to "lose" this request.
+                */
+               held->cmd->flags |= CCP_CMD_MAY_BACKLOG;
                ret = ccp_enqueue_cmd(held->cmd);
                if (ccp_crypto_success(ret))
                        break;