Re: [PATCH v2 3/9] crypto: ccp: Reset TMR size at SNP Shutdown

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/1/25 04:00, Tom Lendacky wrote:
On 12/27/24 03:07, Alexey Kardashevskiy wrote:
On 17/12/24 10:58, Ashish Kalra wrote:
From: Ashish Kalra <ashish.kalra@xxxxxxx>

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@xxxxxxx>
---
   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

ah my bad, it is SEV_ vs SNP_, I am sort of used to SEV_ vs SEV_SNP_ and missed the distinction. sorry for the noise. Thanks,


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;
   }


--
Alexey





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux