>From 7274d7156ff9df5018e4f8ac8fbfae7d7ca8d6d6 Mon Sep 17 00:00:00 2001 From: Sean Christopherson Date: Fri, 28 Feb 2025 10:01:37 -0800 Subject: [PATCH 1/4] crypto: ccp: Enumerate SNP support in output of sev_platform_init() Add an output param to sev_platform_init() to communicate whether or not SNP was (or already was) successfully initialized. The return code from sev_platform_init() is completely disconnected from SNP initialization, e.g. will return errors if SNP setup succeeded, and will return success if SNP setup failed. Signed-off-by: Sean Christopherson --- drivers/crypto/ccp/sev-dev.c | 1 + include/linux/psp-sev.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c index cde6ebab589d..5164c5f3bd3f 100644 --- a/drivers/crypto/ccp/sev-dev.c +++ b/drivers/crypto/ccp/sev-dev.c @@ -1357,6 +1357,7 @@ static int _sev_platform_init_locked(struct sev_platform_init_args *args) */ dev_err(sev->dev, "SEV-SNP: failed to INIT, continue SEV INIT\n"); } + args->snp_initialized = sev->snp_initialized; /* Defer legacy SEV/SEV-ES support if allowed by caller/module. */ if (args->probe && !psp_init_on_probe) diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h index 0b3a36bdaa90..726535e302be 100644 --- a/include/linux/psp-sev.h +++ b/include/linux/psp-sev.h @@ -797,10 +797,12 @@ struct sev_data_snp_shutdown_ex { * @probe: True if this is being called as part of CCP module probe, which * will defer SEV_INIT/SEV_INIT_EX firmware initialization until needed * unless psp_init_on_probe module param is set + * @snp_initialized: Output param that is true if SNP was initialized. */ struct sev_platform_init_args { int error; bool probe; + bool snp_initialized; }; /** base-commit: ac2ba191f3b6b41c9403b142223dfcc3dfe8903b -- 2.48.1.711.g2feabab25a-goog