On 2/19/25 14:54, Ashish Kalra wrote: > From: Ashish Kalra <ashish.kalra@xxxxxxx> > > Add new API interface to do SEV/SNP platform shutdown when KVM module > is unloaded. Just a nit below if you have to respin. Otherwise: Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > > Reviewed-by: Dionna Glaze <dionnaglaze@xxxxxxxxxx> > Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx> > --- > drivers/crypto/ccp/sev-dev.c | 13 +++++++++++++ > include/linux/psp-sev.h | 3 +++ > 2 files changed, 16 insertions(+) > > diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c > index 582304638319..f0f3e6d29200 100644 > --- a/drivers/crypto/ccp/sev-dev.c > +++ b/drivers/crypto/ccp/sev-dev.c > @@ -2445,6 +2445,19 @@ static void sev_firmware_shutdown(struct sev_device *sev) > mutex_unlock(&sev_cmd_mutex); > } > > +void sev_platform_shutdown(void) > +{ > + struct sev_device *sev; > + > + if (!psp_master || !psp_master->sev_data) > + return; > + > + sev = psp_master->sev_data; > + > + sev_firmware_shutdown(sev); sev_firmware_shutdown(psp->master->sev_data); and then you can get rid of the sev variable. Thanks, Tom > +} > +EXPORT_SYMBOL_GPL(sev_platform_shutdown); > + > void sev_dev_destroy(struct psp_device *psp) > { > struct sev_device *sev = psp->sev_data; > diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h > index f3cad182d4ef..0b3a36bdaa90 100644 > --- a/include/linux/psp-sev.h > +++ b/include/linux/psp-sev.h > @@ -954,6 +954,7 @@ int sev_do_cmd(int cmd, void *data, int *psp_ret); > void *psp_copy_user_blob(u64 uaddr, u32 len); > void *snp_alloc_firmware_page(gfp_t mask); > void snp_free_firmware_page(void *addr); > +void sev_platform_shutdown(void); > > #else /* !CONFIG_CRYPTO_DEV_SP_PSP */ > > @@ -988,6 +989,8 @@ static inline void *snp_alloc_firmware_page(gfp_t mask) > > static inline void snp_free_firmware_page(void *addr) { } > > +static inline void sev_platform_shutdown(void) { } > + > #endif /* CONFIG_CRYPTO_DEV_SP_PSP */ > > #endif /* __PSP_SEV_H__ */