Re: [PATCH v6 4/4] x86/sev: register tpm-svsm platform device
From: Stefano Garzarella
Date: Tue Apr 08 2025 - 07:59:52 EST
On Tue, Apr 08, 2025 at 01:28:20PM +0200, Borislav Petkov wrote:
On Tue, Apr 08, 2025 at 01:08:36PM +0200, Stefano Garzarella wrote:
We discussed a bit on v3, but I'm open to change it:
https://lore.kernel.org/linux-integrity/nrn4ur66lz2ocbkkjl2bgiex3xbp552szerfhalsaefunqxf7p@ki7xf66zrf6u/
I tried to keep the logic of whether or not the driver is needed all in
the tpm_svsm_probe()/snp_svsm_vtpm_probe() (where I check for SVSM).
If you prefer to move some pieces here, though, I'm open.
Yes please.
It doesn't make a whole lotta sense right now to register a TPM platform
driver at one place without even knowing you're running with an SVSM inside
the guest blob or not.
The usual approach is to register upon a successful detection.
I see, so IIUC I can just apply the following change to this patch and
avoid to export snp_svsm_vtpm_probe() at all, right?
diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index acbd9bc526b1..fa83e6c7f990 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2702,8 +2702,10 @@ static int __init snp_init_platform_device(void)
if (platform_device_register(&sev_guest_device))
return -ENODEV;
- if (platform_device_register(&tpm_svsm_device))
- return -ENODEV;
+ if (snp_svsm_vtpm_probe()) {
+ if (platform_device_register(&tpm_svsm_device))
+ return -ENODEV;
+ }
pr_info("SNP guest platform device initialized.\n");
return 0;
Thanks,
Stefano