crypto: ccp - add timeout support in the SEV command
authorBrijesh Singh <brijesh.singh@amd.com>
Wed, 15 Aug 2018 21:11:25 +0000 (16:11 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 13 Sep 2018 05:27:43 +0000 (13:27 +0800)
commit3702a0585e64d70d5bf73bf3e943b8d6005b72c1
treed22d778c3f433f6d175d3e154d90d3914b72c4c5
parent57361846b52bc686112da6ca5368d11210796804
crypto: ccp - add timeout support in the SEV command

Currently, the CCP driver assumes that the SEV command issued to the PSP
will always return (i.e. it will never hang).  But recently, firmware bugs
have shown that a command can hang.  Since of the SEV commands are used
in probe routines, this can cause boot hangs and/or loss of virtualization
capabilities.

To protect against firmware bugs, add a timeout in the SEV command
execution flow.  If a command does not complete within the specified
timeout then return -ETIMEOUT and stop the driver from executing any
further commands since the state of the SEV firmware is unknown.

Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Gary Hook <Gary.Hook@amd.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccp/psp-dev.c