On Tue, Jun 21, 2022 at 03:43:13PM -0600, Peter Gonda wrote: > ( > > On Mon, Jun 20, 2022 at 5:05 PM Ashish Kalra <Ashish.Kalra@xxxxxxx> wrote: > > > > From: Brijesh Singh <brijesh.singh@xxxxxxx> > > > > Provide the APIs for the hypervisor to manage an SEV-SNP guest. The > > commands for SEV-SNP is defined in the SEV-SNP firmware specification. > > > > Signed-off-by: Brijesh Singh <brijesh.singh@xxxxxxx> > > --- > > drivers/crypto/ccp/sev-dev.c | 24 ++++++++++++ > > include/linux/psp-sev.h | 73 ++++++++++++++++++++++++++++++++++++ > > 2 files changed, 97 insertions(+) > > > > diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c > > index f1173221d0b9..35d76333e120 100644 > > --- a/drivers/crypto/ccp/sev-dev.c > > +++ b/drivers/crypto/ccp/sev-dev.c > > @@ -1205,6 +1205,30 @@ int sev_guest_df_flush(int *error) > > } > > EXPORT_SYMBOL_GPL(sev_guest_df_flush); > > > > +int snp_guest_decommission(struct sev_data_snp_decommission *data, int *error) > > +{ > > + return sev_do_cmd(SEV_CMD_SNP_DECOMMISSION, data, error); > > +} > > +EXPORT_SYMBOL_GPL(snp_guest_decommission); > > + > > +int snp_guest_df_flush(int *error) > > +{ > > + return sev_do_cmd(SEV_CMD_SNP_DF_FLUSH, NULL, error); > > +} > > +EXPORT_SYMBOL_GPL(snp_guest_df_flush); Nit: undocumented exported functions. Both need kdoc. > > Why not instead change sev_guest_df_flush() to be SNP aware? That way > callers get the right behavior without having to know if SNP is > enabled or not. > > int sev_guest_df_flush(int *error) > { > if (!psp_master || !psp_master->sev_data) > return -EINVAL; > > if (psp_master->sev_data->snp_inited) > return sev_do_cmd(SEV_CMD_SNP_DF_FLUSH, NULL, error); > > return sev_do_cmd(SEV_CMD_DF_FLUSH, NULL, error); > } Because it serves no purpose to fuse them into one, and is only more obfuscated (and also undocumented). Two exported symbols can be traced also separately with ftrace/kprobes. Degrading transparency is not great idea IMHO. BR, Jarkko