[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <63af2db5-9787-5165-ee5e-9bb825752f6a@amd.com>
Date: Fri, 3 Jan 2025 11:00:22 -0600
From: Tom Lendacky <thomas.lendacky@....com>
To: Alexey Kardashevskiy <aik@....com>, Ashish Kalra <Ashish.Kalra@....com>,
seanjc@...gle.com, pbonzini@...hat.com, tglx@...utronix.de,
mingo@...hat.com, bp@...en8.de, dave.hansen@...ux.intel.com, x86@...nel.org,
hpa@...or.com, john.allen@....com, herbert@...dor.apana.org.au,
davem@...emloft.net
Cc: michael.roth@....com, dionnaglaze@...gle.com, kvm@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-crypto@...r.kernel.org,
linux-coco@...ts.linux.dev
Subject: Re: [PATCH v2 3/9] crypto: ccp: Reset TMR size at SNP Shutdown
On 12/27/24 03:07, Alexey Kardashevskiy wrote:
> On 17/12/24 10:58, Ashish Kalra wrote:
>> From: Ashish Kalra <ashish.kalra@....com>
>>
>> When SEV-SNP is enabled the TMR needs to be 2MB aligned and 2MB sized,
>> ensure that TMR size is reset back to default when SNP is shutdown as
>> SNP initialization and shutdown as part of some SNP ioctls may leave
>> TMR size modified and cause subsequent SEV only initialization to fail.
>>
>> Signed-off-by: Ashish Kalra <ashish.kalra@....com>
>> ---
>> drivers/crypto/ccp/sev-dev.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
>> index 0ec2e8191583..9632a9a5c92e 100644
>> --- a/drivers/crypto/ccp/sev-dev.c
>> +++ b/drivers/crypto/ccp/sev-dev.c
>> @@ -1751,6 +1751,9 @@ static int __sev_snp_shutdown_locked(int *error,
>> bool panic)
>> sev->snp_initialized = false;
>> dev_dbg(sev->dev, "SEV-SNP firmware shutdown\n");
>> + /* Reset TMR size back to default */
>> + sev_es_tmr_size = SEV_TMR_SIZE;
>
>
> It is declared as:
>
> static size_t sev_es_tmr_size = SEV_TMR_SIZE;
>
> and then re-assigned again in __sev_snp_init_locked() to the same value of
> SNP_TMR_SIZE. When can sev_es_tmr_size become something else than
> SEV_TMR_SIZE? I did grep 10b2c8a67c4b (kvm/next) and 85ef1ac03941
> (AMDESE/snp-host-latest) but could not find it. Stale code may be? Thanks,
When SNP has not been initialized using SNP_INIT(_EX), the TMR size must
be 1MB in size (SEV_TMR_SIZE), but when SNP_INIT_(EX) has been executed,
the TMR must be 2MB (SNP_TMR_SIZE) in size. This series is working towards
removing the initialization of SNP and/or SEV from the CCP initialization
and moving it to KVM, which means that we can have SNP init'd, then
shutdown and then SEV init'd. In this case, the TMR size must be the
SEV_TMR_SIZE value, so it is being reset after an SNP shutdown.
Thanks,
Tom
>
>
>> +
>> return ret;
>> }
>>
>
Powered by blists - more mailing lists