crypto: ccp - Ensure psp_ret is always init'd in __sev_platform_init_locked()
authorPeter Gonda <pgonda@google.com>
Mon, 10 Jan 2022 21:18:37 +0000 (13:18 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:05 +0000 (14:23 +0200)
[ Upstream commit 1e1ec11d3ec3134e05d4710f4dee5f9bd05e828d ]

Initialize psp_ret inside of __sev_platform_init_locked() because there
are many failure paths with PSP initialization that do not set
__sev_do_cmd_locked().

Fixes: e423b9d75e77: ("crypto: ccp - Move SEV_INIT retry for corrupted data")

Signed-off-by: Peter Gonda <pgonda@google.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Marc Orr <marcorr@google.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: John Allen <john.allen@amd.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/ccp/sev-dev.c

index e2806ca..5040726 100644 (file)
@@ -241,7 +241,7 @@ static int __sev_platform_init_locked(int *error)
        struct psp_device *psp = psp_master;
        struct sev_data_init data;
        struct sev_device *sev;
-       int psp_ret, rc = 0;
+       int psp_ret = -1, rc = 0;
 
        if (!psp || !psp->sev_data)
                return -ENODEV;